https://kotlinlang.org logo
Join the conversationJoin Slack
Channels
100daysofcode
100daysofkotlin
100daysofkotlin-2021
advent-of-code
aem
ai
alexa
algeria
algolialibraries
amsterdam
android
android-architecture
android-databinding
android-studio
androidgithubprojects
androidthings
androidx
androidx-xprocessing
anime
anko
announcements
apollo-kotlin
appintro
arabic
argentina
arkenv
arksemdevteam
armenia
arrow
arrow-contributors
arrow-meta
ass
atlanta
atm17
atrium
austin
australia
austria
awesome-kotlin
ballast
bangladesh
barcelona
bayarea
bazel
beepiz-libraries
belgium
berlin
big-data
books
boston
brazil
brikk
budapest
build
build-tools
bulgaria
bydgoszcz
cambodia
canada
carrat
carrat-dev
carrat-feed
chicago
chile
china
chucker
cincinnati-user-group
cli
clikt
cloudfoundry
cn
cobalt
code-coverage
codeforces
codemash-precompiler
codereview
codingame
codingconventions
coimbatore
collaborations
colombia
colorado
communities
competitive-programming
competitivecoding
compiler
compose
compose-android
compose-desktop
compose-hiring
compose-ios
compose-mp
compose-ui-showcase
compose-wear
compose-web
connect-audit-events
corda
cork
coroutines
couchbase
coursera
croatia
cryptography
cscenter-course-2016
cucumber-bdd
cyprus
czech
dagger
data2viz
databinding
datascience
dckotlin
debugging
decompose
decouple
denmark
deprecated
detekt
detekt-hint
dev-core
dfw
docs-revamped
dokka
domain-driven-design
doodle
dsl
dublin
dutch
eap
eclipse
ecuador
edinburgh
education
effective-kotlin
effectivekotlin
emacs
embedded-kotlin
estatik
event21-community-content
events
exposed
failgood
fb-internal-demo
feed
firebase
flow
fluid-libraries
forkhandles
forum
fosdem
fp-in-kotlin
framework-elide
freenode
french
fritz2
fuchsia
functional
funktionale
gamedev
ge-kotlin
general-advice
georgia
geospatial
german-lang
getting-started
github-workflows-kt
glance
godot-kotlin
google-io
gradle
graphic
graphkool
graphql
graphql-kotlin
graviton-browser
greece
grpc
gsoc
gui
hackathons
hacktoberfest
hamburg
hamkrest
helios
helsinki
hexagon
hibernate
hikari-cp
hire-me
hiring
hongkong
hoplite
http4k
hungary
hyderabad
image-processing
india
indonesia
inkremental
intellij
intellij-plugins
intellij-tricks
internships
introduce-yourself
io
ios
iran
israel
istanbulcoders
italian
jackson-kotlin
jadx
japanese
jasync-sql
java-to-kotlin-refactoring
javadevelopers
javafx
javalin
javascript
jdbi
jhipster-kotlin
jobsworldwide
jpa
jshdq
juul-libraries
jvm-ir-backend-feedback
jxadapter
k2-early-adopters
kaal
kafka
kakao
kalasim
kapt
karachi
karg
karlsruhe
kash_shell
kaskade
kbuild
kdbc
kgen-doc-tools
kgraphql
kinta
klaxon
klock
kloudformation
kmdc
kmm-español
kmongo
knbt
knote
koalaql
koans
kobalt
kobweb
kodein
kodex
kohesive
koin
koin-dev
komapper
kondor-json
kong
kontent
kontributors
korau
korean
korge
korim
korio
korlibs
korte
kotest
kotest-contributors
kotless
kotlick
kotlin-asia
kotlin-beam
kotlin-by-example
kotlin-csv
kotlin-data-storage
kotlin-foundation
kotlin-fuel
kotlin-in-action
kotlin-inject
kotlin-latam
kotlin-logging
kotlin-multiplatform-contest
kotlin-mumbai
kotlin-native
kotlin-pakistan
kotlin-plugin
kotlin-pune
kotlin-roadmap
kotlin-samples
kotlin-sap
kotlin-serbia
kotlin-spark
kotlin-szeged
kotlin-website
kotlinacademy
kotlinbot
kotlinconf
kotlindl
kotlinforbeginners
kotlingforbeginners
kotlinlondon
kotlinmad
kotlinprogrammers
kotlinsu
kotlintest
kotlintest-devs
kotlintlv
kotlinultimatechallenge
kotlinx-datetime
kotlinx-files
kotlinx-html
kotrix
kotson
kovenant
kprompt
kraph
krawler
kroto-plus
ksp
ktcc
ktfmt
ktlint
ktor
ktp
kubed
kug-leads
kug-torino
kvision
kweb
lambdaworld_cadiz
lanark
language-evolution
language-proposals
latvia
leakcanary
leedskotlinusergroup
lets-have-fun
libgdx
libkgd
library-development
linkeddata
lithuania
london
losangeles
lottie
love
lychee
macedonia
machinelearningbawas
madrid
malaysia
mathematics
meetkotlin
memes
meta
metro-detroit
mexico
miami
micronaut
minnesota
minutest
mirror
mockk
moko
moldova
monsterpuzzle
montreal
moonbean
morocco
motionlayout
mpapt
mu
multiplatform
mumbai
munich
mvikotlin
mvrx
myndocs-oauth2-server
naming
navigation-architecture-component
nepal
new-mexico
new-zealand
newname
nigeria
nodejs
norway
npm-publish
nyc
oceania
ohio-kotlin-users
oldenburg
oolong
opensource
orbit-mvi
osgi
otpisani
package-search
pakistan
panamá
pattern-matching
pbandk
pdx
peru
philippines
phoenix
pinoy
pocketgitclient
polish
popkorn
portugal
practical-functional-programming
proguard
prozis-android-backup
pyhsikal
python
python-contributors
quasar
random
re
react
reaktive
realm
realworldkotlin
reductor
reduks
redux
redux-kotlin
refactoring-to-kotlin
reflect
refreshversions
reports
result
rethink
revolver
rhein-main
rocksdb
romania
room
rpi-pico
rsocket
russian
russian_feed
russian-kotlinasfirst
rx
rxjava
san-diego
science
scotland
scrcast
scrimage
script
scripting
seattle
serialization
server
sg-user-group
singapore
skia-wasm-interop-temp
skrape-it
slovak
snake
sofl-user-group
southafrica
spacemacs
spain
spanish
speaking
spek
spin
splitties
spotify-mobius
spring
spring-security
squarelibraries
stackoverflow
stacks
stayhungrystayfoolish
stdlib
stlouis
strife-discord-lib
strikt
students
stuttgart
sudan
swagger-gradle-codegen
swarm
sweden
swing
swiss-user-group
switzerland
talking-kotlin
tallinn
tampa
teamcity
tegal
tempe
tensorflow
terminal
test
testing
testtestest
texas
tgbotapi
thailand
tornadofx
touchlab-tools
training
tricity-kotlin-user-group
trójmiasto
truth
tunisia
turkey
turkiye
twitter-feed
uae
udacityindia
uk
ukrainian
uniflow
unkonf
uruguay
utah
uuid
vancouver
vankotlin
vertx
videos
vienna
vietnam
vim
vkug
vuejs
web-mpp
webassembly
webrtc
wimix_sentry
wwdc
zircon
Powered by Linen
touchlab-tools
  • e

    eygraber

    01/06/2023, 7:42 PM
    I believe that is intentional going forward with AGP 8
  • c

    Carlos Monzon

    01/10/2023, 11:26 PM
    Is anyone aware if spm(commitManually = true) is actually working on the latest version? I am still having a commit attempt
    r
    • 2
    • 1
  • h

    Hemant Gokhale

    01/11/2023, 7:50 PM
    Is anybody using KMMBridge with GitLab? Any guidance on implementing that combination is much appreciated.
    p
    • 2
    • 3
  • j

    Jan Kuchař

    01/13/2023, 5:57 PM
    Hi! Is there anyone who is able to debug (e.g. stop on line) the KMM code from the iOS simulator? I’m having hard times. Tried Android Studio and Xcode, both with negative results. If you have any experiences, please share them in thread in #kotlin-native https://kotlinlang.slack.com/archives/C3PQML5NU/p1673631195903349 Thanks a lot! 🙏
  • a

    Arun Joseph

    01/19/2023, 1:44 PM
    When I use https://github.com/touchlab/KMMBridgeKickStart, I see that on iOS, the classes appear as
    ModuleNameClass
    , for example
    BreedsBreed
    Is there a way to fix it?
    r
    k
    • 3
    • 3
  • c

    Cherrio LLC

    01/20/2023, 5:55 PM
    Hello guys.
    cocoapodsTrunk()
    is missing in 0.3.4 is that intended??
    r
    • 2
    • 1
  • t

    Tushar Saha

    01/25/2023, 9:12 AM
    Hi team, I’m trying to get a build locally from
    KMMBridgeKickStart
    by running
    ./gradlew spmDevBuild
    and importing the
    KMMBridgeKickStart.xcframework
    build to an existing Xcode project but seems that Xcode doesn’t find
    allshared
    reference. Except editing the
    GROUP
    in gradle.properties, I didn’t do any other configuration setup. Do I need the SPM setup from this page prior to run the
    spmDevBuild
    task? My team is trying to have a local setup to distribute the
    xcframework
    with iOS without setting up the entire CI infra (one of the reason is we use Gitlab). Any help please? TIA 🙂
    k
    l
    • 3
    • 15
  • c

    chislett

    01/25/2023, 10:28 PM
    Does touch lab have any tooling for compose-ui-multiplatform code sharing. What I mean by that? KmmBridge shares compiled code(UI in swift) while KampKit consume Kotlin code but still uses swiftui too. There is a current limitation in ios that prevents the sharing of iOS Composable public APIs, every Composable in iOS shared lib has to be
    internal
    . Not terrible but limits share-ability in the form of compiled static libraries. We can still share code, for example to consume shared Composables from a project A in a project B. I bring project A directory to project B and work in project B. If I have to change/fix something in A, I do it while working in project B, and commit the changes to A so other projects consuming A are up to date. No issue doing this process manually but wonder if you guys have some tooling for it? - I might need to check gitsubmodules From a thread in #feed
  • p

    Pavel Dektev

    01/27/2023, 3:57 PM
    Hi! I am trying the KMMBridge. When I use an “All Publish” workflow I get the
    Run ./gradlew kmmBridgePublish publishAndroidDebugPublicationToGitHubPackagesRepository publishAndroidReleasePublicationToGitHubPackagesRepository -PGITHUB_PUBLISH_TOKEN=*** -PGITHUB_REPO=[my repo]  --no-daemon --stacktrace
    /Users/runner/work/_temp/965ab0aa-1ad0-4f90-b922-026775638402.sh: line 1: ./gradlew: Permission denied
    What am I doing wrong?
    k
    • 2
    • 4
  • p

    Pavel Dektev

    02/01/2023, 11:48 AM
    Hi everyone! I am going threw this tutorial on KMMBridge and can’t get the SPM dependency to work. I have a private Github repo. I created an .netrc file and filled it with my login and a new PAT. When I try to add a package I paste the github link into a search box and for some reason Xcode does not use the .netrc file and asks to provide a creadentials. But this also does not work. What am I doing wrong?
    k
    a
    • 3
    • 51
  • l

    Landry Norris

    02/01/2023, 4:41 PM
    I could have sworn that I’ve used xcode-kotlin to view UIImages from breakpoints in Kotlin code back in Kotlin 1.6.0, but I can’t seem to get it working now. It just sees the local variables as the runtime’s ObjHeader* now. Is there some step I’m supposed to do to get the konan_lldb.py to run so it can get more info on the types?
    k
    • 2
    • 19
  • b

    Brendan Weinstein

    02/01/2023, 5:02 PM
    Anyone else run into trouble building iOS project that uses Kermit after updating to kotlin 1.8.0?
    k
    • 2
    • 1
  • m

    mike.holler

    02/02/2023, 3:49 PM
    Hey @kpgalligan are there plans to update cklib? We started using it when we were working with the Touchlab team to help jump-start our SDK. I've noticed the note,
    The main Kotlin project has changed how locally embedded C-like code is included in libraries. Use this project if you'd like, but outside of private projects we won't really be supporting it much.
    And was wondering what the alternative is. Where should we be looking? It appears to work in Kotlin 1.8, but we're having test failures in native wrapper code that didn't previously fail pre-updated. I am unsure of whether the issue is caused by Kotlin native changes or cklib's compatibility with 1.8.
    r
    k
    • 3
    • 6
  • s

    siraf

    02/10/2023, 1:07 PM
    Hi everyone, We are trying to setup the KMM Bridge. Before, we had both Kotlin and iOS code cloned in the same directory and it worked, but now we want to setup the KMM Bridge to avoid cloning Kotlin code. We are following this tutorial and the issues came on the 3rd step. After running
    All Publish
    action on Github, the build crashes after ~12 mins. Firstly the issues was that it was not able to find our Podspec repo, saying
    If it has not yet been cloned, add it via "pod repo add"
    . Not sure why, but we changed the Podspec repo from Private to Public and rerun the action. This time it does not show that error but it still crashes, on the images below you can see what I found useful from the logs :
    r
    l
    • 3
    • 26
  • l

    Landry Norris

    02/13/2023, 7:26 PM
    When using Kermit for logging, I see a crash when running tests on Android, saying that Log is not mocked. To fix this, I add the code below to every test class. Is there something I can do in Kermit to force it to use the Android writer when running the actual app, and the common writer in tests, or do I need to have the workaround every time?
    @BeforeTest
        fun setup() {
            Logger.setLogWriters(CommonWriter())
        }
    r
    • 2
    • 5
  • j

    James Black

    02/16/2023, 3:58 AM
    I am curious if there is a version of KaMPKit that uses SQLCipher, much as explained in this article from 2020. https://touchlab.co/multiplatform-encryption-with-sqldelight-and-sqlcipher/
    r
    k
    • 3
    • 3
  • s

    siraf

    02/17/2023, 1:33 PM
    We have configured/uploaded our self-hosted MacOS x64 runner into kmm-bridge repo, is it possible to run Github actions on it. What is the way to use “runs-on” in yml file? This is the default yml file that comes along with the kmm-bridge template and is working fine. Now, I want to switch from Github’s runner to my own one, I found that I need to use
    runs-on
    . Tried putting it in each place of the yml, with and without
    steps
    ,
    env
    ,
    with
    etc. and each time the Github Action fails. Did anyone else use his own runner, if yes, please write where did you put the
    runs-on
    line, thanks.
    name: KMM Bridge/iOS Publish
    on:
    workflow_dispatch:
    jobs:
    call-kmmbridge-publish:
    uses: touchlab/KMMBridgeGithubWorkflow/.github/workflows/faktorybuildbranches.yml@v0.6
    secrets:
    PODSPEC_SSH_KEY: ${{ secrets.PODSPEC_SSH_KEY }}
    This is one of the ways I tried (adding runs-on right below the job name):
    jobs:
    call-kmmbridge-publish:
    runs-on: self-hosted
    steps:
    - uses: touchlab/KMMBridgeGithubWorkflow/.github/workflows/faktorybuildbranches.yml@v0.6
    with:
    PODSPEC_SSH_KEY: ${{ secrets.PODSPEC_SSH_KEY }}
  • n

    ND

    02/22/2023, 1:38 PM
    Can we run action workflow with kmm-bridge integration on self-hosted runner? Do you have some example?
  • r

    russhwolf

    02/22/2023, 2:28 PM
    We haven't ever explored self-hosted runners for this. Whatever you do, it will need to be a macos host. But I don't know what configuration looks like for self-hosted or if there are limitations compared to the default runner.
  • r

    russhwolf

    02/22/2023, 4:50 PM
    @siraf @ND Feel free to drop details on any errors you run into on this ticket https://github.com/touchlab/KMMBridge/issues/208
  • n

    ND

    02/24/2023, 10:23 AM
    Can you help me with these errors? Notice the first error, does it cause the others below? Other errors were known to occur earlier on the kmm-bridge template repo, usually related to keys, but were successfully resolved. Now, when I switched to testing the kmm-bridge integration on my own kmm repository, the problem with
    pushRemotePodspec
    constantly appears, and now also with
    Comment for (public) key ' ' does not match GitHub URL pattern. Not treating it as a GitHub deploy key.
    which I am seeing for the first time. Do you have any ideas?
  • u

    Uli Niggemann

    02/26/2023, 3:26 PM
    Hi everybody, as AppCode is sunsetting I am currently evaluating some alternatives. Right now, I try to run the
    xcode-kotlin
    plugin. The installation itself seems to succeed
    Installed plugin version:	1.2.1
    Bundled plugin version:		1.2.1
    
    Language spec installed: Yes
    LLDB init installed: Yes
    LLDB Xcode init sources main LLDB init: No
    
    Installed Xcode versions:
    ✔	Xcode 14.2 (14C11a)	C91F3560-00E7-4749-8E3F-4D83B1496051	/Applications/Xcode.app
    ✔	Xcode 14.1 (14B47a)	B8A1C62D-289E-476A-B0CD-B16ADBDD8395	/Applications/Xcode-14.1.0.app
    ✔	Xcode 14.2 (14C11a)	C91F3560-00E7-4749-8E3F-4D83B1496051	/Applications/Xcode-14.2.0.app
    
    ✔ - plugin is compatible, x - plugin is not compatible
    Run 'xcode-kotlin sync' to add compatibility for all listed Xcode versions.
    but I do not have Code-Highlighting or source-navigation nor code completion. Do I miss something? Is it linked to
    LLDB Xcode init sources main LLDB init: No
    ? Thanks for a hint!
    m
    k
    • 3
    • 8
  • m

    MarkRS

    03/01/2023, 1:40 PM
    I've cloned a new copy of KaMPKit but some external references are still not being recognised, by the checker (in Android Studio, EE 2022.1.1 Patch 2). For example "import kotlinx.coroutines.CoroutineScope" fails to find CoroutineScope (although it recognises kotlinx.coroutines) in the check in sharedcommon. It builds, but it means the code is littered with red lines, and in my own code it makes it much harder to separate real bugs from "false positives". I thought this was supposed to have been fixed in Electric Eel, which makes me wonder if I've got something wrong, but I have no idea what it could be. Am I the only one with this problem still?
    r
    • 2
    • 2
  • m

    Matthew Ramotar

    03/04/2023, 8:24 PM
    Hey friends - Is it possible to generate and publish >1 Swift packages using 1
    KMMBridgeGithubWorkflow
    ? Our library has 3 modules using KMM Bridge plugin: • Cache • Multicast • Store However the workflow only generates 1 `Cache` Swift package.
    r
    • 2
    • 4
  • a

    Anton Penkrat

    03/06/2023, 11:16 AM
    Hi. I successfully configured kmmBridge for local development through cocoapod dependency. I may call functions and receive results but when i try to init class instance that defined inside KMM i receive error during build phase: Undefined symbol: _OBJC_CLASS_$_AllsharedIosProvKeyPairImpl Is it something in my configuration or KMM expose only header for interaction with Swift and we can’t init classes directly?
    r
    • 2
    • 2
  • k

    kpgalligan

    03/10/2023, 9:17 PM
    We’ve published several updates to our KMM open source libraries. Here’s the post: https://touchlab.co/open-source-updates/ Posted in #feed
  • m

    Matt Thompson

    03/22/2023, 8:35 PM
    fyi this article in your docs doesn’t mention the read:packages permission when creating a github PAT for importing a swift package from kmmbridge https://kmmbridge.touchlab.co/docs/DEFAULT_GITHUB_FLOW#ios-dev-machine-config (got hung up on it for a while until I realized the difference in your blog post https://touchlab.co/quick-start-with-kmmbridge-1-hour-tutorial/)
    r
    • 2
    • 1
  • l

    leandro

    03/23/2023, 4:07 PM
    Is there a way to basically clone all the keys and values of a MultiplatformSettings to another one, e.g. duplicate the underlying files? My goal is to basically have all minus one of the keys, and copying key-by-key would be a lot of code
    r
    • 2
    • 2
  • p

    Petter Måhlén

    03/24/2023, 4:20 PM
    hey - i just created a repo based on KMMBridgeKickStart, and I got a bunch of warnings from the All Publish action. Is this something that needs to be updated somehow?
    r
    • 2
    • 1
  • b

    Bradleycorn

    03/27/2023, 12:01 PM
    I did a basic kermit setup on a brand new KMM app (created from Android Studio). I put a simple debug log message in the common source:
    Logger.d(tag = "TEST_TAG") { "Log from common code" }
    the log message shows up fine when I run the iOS app. But it does NOT show up in the Android App’s LogCat?? If I change to
    Logger.i
    … the message does show up. I do NOT have any logcat filtering turned on, and I can see other Debug level log messages in LogCat. Am I doing something wrong, or making a rookie mistake of some kind?
    r
    • 2
    • 2
Powered by Linen
Title
b

Bradleycorn

03/27/2023, 12:01 PM
I did a basic kermit setup on a brand new KMM app (created from Android Studio). I put a simple debug log message in the common source:
Logger.d(tag = "TEST_TAG") { "Log from common code" }
the log message shows up fine when I run the iOS app. But it does NOT show up in the Android App’s LogCat?? If I change to
Logger.i
… the message does show up. I do NOT have any logcat filtering turned on, and I can see other Debug level log messages in LogCat. Am I doing something wrong, or making a rookie mistake of some kind?
r

russhwolf

03/27/2023, 2:59 PM
Our default config reads
Log.isLoggable()
to determine whether to log. I think by default that returns true for
INFO
and above,
b

Bradleycorn

03/27/2023, 6:09 PM
ah ha! Yeah I believe that is how
isLoggable
works by default. thanks @russhwolf!
View count: 2