xiaobailong24
03/21/2025, 7:41 AMxcode-kotlin info
show null with Xcode16.2, is there a problem? Thx.Simon Binder
03/21/2025, 9:58 AM<http://libsqlite3.ar|libsqlite3.ar>
by invoking clang through the KMP PlatformManager
and we include that with a cinterops definition having a staticLibraries
option.
3. We then export our project as an xcframework.
I know that our setup generally works because Kotlin tests depending on SQLite pass on all platforms we care about (and I checked with nm
that a copy of SQLite is part of the test executable there). When consuming the exported xcframework on a Swift project on macOS though, we get linker errors about missing symbols like sqlite3_column_database_name
or sqlite3_win32_set_directory
. What all the missing symbols have in common is that they're optional or platform-specific, so they're not enabled by default (column_database_name
needs SQLITE_ENABLE_COLUMN_METADATA
, for example).
From my understanding, the root cause is this:
1. The cinterop setup on SQLiter creates Kotlin functions for all symbols defined in sqlite3.h
.
2. When we test with Kotlin, we compile an executable from which unused symbols are removed by the linker (?), and since we're not calling sqlite3_column_database_name
anywhere, the undefined symbol is never part of the executable.
3. When exporting the library as a framework, the symbols aren't stripped and consumers can't link our framework?
Is there a way for us to fix this by e.g. removing unused symbols when creating the xcframework?Siggi Gunnarss
04/09/2025, 12:18 PMJohn O'Reilly
04/11/2025, 9:59 AMBradleycorn
04/11/2025, 8:00 PMaddGithubPackagesRepository()
method from my plugin, like this:
class UmbrellaModuleConventionPlugin: Plugin<Project> {
override fun apply(target: Project) = with(target) {
with(pluginManager) {
apply(kmpLibs.plugin("touchlab.kmmbridge"))
apply(kmpLibs.plugin("kotlin.cocoapods"))
}
extensions.configure<KotlinMultiplatformExtension>(::configureCocoapods)
addGithubPackagesRepository()
...
}
}
But when I update to 1.2.1, I now get an error:
Unresolved reference: addGithubPackagesRepositoryThe line above that applies the kmmbridge plugin
apply(kmpLibs.plugin("touchlab.kmmbridge"))
is using the "github" version of the plugin:
touchlab-kmmbridge = { id="co.touchlab.kmmbridge.github", version.ref="touchlab-kmmBridge"}
And the gradle config for my plugin module, is using the kmmbridge gradle plugin:
dependencies {
compileOnly(kmpLibs.android.gradlePlugin)
compileOnly(kmpLibs.kotlin.gradlePlugin)
compileOnly(kmpLibs.touchlab.kmmbridge.gradlePlugin)
}
touchlab-kmmbridge-gradlePlugin = { group="co.touchlab.kmmbridge", name="kmmbridge", version.ref= "touchlab-kmmBridge" }
I'm not sure where I'm going wrong???Mohammed Akram Hussain
04/17/2025, 12:27 PMBradleycorn
04/25/2025, 3:00 PMAbhishek Agarwal
04/29/2025, 8:04 AM/.gradlew spmDevBuild
to make the framework and then archive my ios project directly through xcode , I was just wondering is there any way here to make the release version of the framework as AFAIK, this produces a debug version of the Kotlin code.Ismail
04/29/2025, 12:57 PMVita Sokolova
04/30/2025, 11:47 AMCaching disabled for task ':common:publishKotlinMultiplatformPublicationToGitHubPackagesRepository' because:
Not worth caching
Task ':common:publishKotlinMultiplatformPublicationToGitHubPackagesRepository' is not up-to-date because:
Task has not declared any outputs despite executing actions.
Can share with me what should be the reasonable gradle cache configuration for a KMP project?Peter Ringset
05/06/2025, 9:05 AMFlow<Int>
as the type for one of the fields, and that interface when translated to Swift uses SkieSwiftFlow<Int>
. This interface should be implemented by one of my Swift classes. What’s the best/easiest way for the Swift class to create an instance of SkieSwiftFlow<Int>
?brabo-hi
05/08/2025, 7:50 PMDhruv Singh
05/13/2025, 5:01 PMstruct HeadlessPaymentOptionsResponse: Codable, Equatable {
let param2: String
let param1: String
}
cc @chandilsachinBradleycorn
05/14/2025, 8:57 PMENABLE_PUBLISHING=true
property when running the kmmBridgePublish task. Hoping someone can point me in the right direction ....
More details in the 🧵Bradleycorn
05/15/2025, 8:44 PMgitHubReleaseArtifacts()
configuration, but alas it doesn't seem to. I have the proper deploy keys, netrc entries, etc setup. But my (CI) build fails when validating the produced podspec. I get:
- ERROR | [iOS] unknown: Encountered an unknown error ([!] /usr/bin/curl -f -L -o /var/folders/w5/_8wgjw3j5cg6mgrth3s2kg9m0000gn/T/d20250515-12410-9mp3pi/file.zip <https://api.github.com/repos/myorg/myrepo/releases/assets/255030196.zip> --create-dirs --netrc-optional --retry 2 -A 'CocoaPods/1.16.2 cocoapods-downloader/2.1' -H Accept: application/octet-stream
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 280 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (56) The requested URL returned error: 403
) during validation.
Perhaps there's something else I need to do with the configuration or ci build workflow?Bradleycorn
05/16/2025, 5:48 PMkpgalligan
05/16/2025, 6:38 PMLeo Yamamoto
05/20/2025, 5:25 PMNikolay Kasyanov
05/27/2025, 2:41 PMChristopher Mederos
05/29/2025, 1:29 AMMark
06/01/2025, 11:34 AMBradleycorn
06/10/2025, 3:49 PMtouchlab/ga-update-release-tag
github action doesn't seem to be working right ...
The action runs (successfully), but it doesn't seem to do anything.
When I check the tag that gets created in my repo, there is no extra commit, and there is no Package.swift file.
However, when I check the github release, the xcframework binary has bee uploaded. That part from the build steps seems to be working.
It's just that the update release tag action doesn't seem to be working or doing anything. not sure what I'm doing wrong, or where to start debugging.Trey
06/10/2025, 8:28 PMDavid
06/12/2025, 10:46 AMchristian.steffensen
06/19/2025, 11:10 AMValue of type X has no member Y
where X is a class and Y is a suspending function
We also get the error: No exact matches in global call to onEnum
The only thing we have changed recently is updated to Kotlin 2.1.20, where we got a Can't find env_blacklist file
error, which was at first fixed by calling ./gradlew commonizeNativeDistribution
before building - that fixed the build and the following released worked just fine.
But, now we just made another release and it no longer works on iOS, with the issues mentioned above. On suggestion from KT-72068 we have tried adding kotlin.native.toolchain.enabled=false
but that made no difference
Skie 0.10.2
Kotlin 2.1.20
Gradle 8.11.1
The library is built using assembleFramework and publishing it manually to github package registryDaniel Žůrek
06/20/2025, 1:53 PMGitportal
. Library files are added to git, running gitportal setup library ...
command, even though the library folder is in .gitignore
. Resulting in:
The following paths are ignored by one of your .gitignore files:
library
Is this an intentional way of force versioning in android/ios repo? We want to use gitportal for our shared code but we'd like to avoid having the same code mixing in PRs etc.aoriani
07/02/2025, 2:06 AMJohan Reitan
07/03/2025, 3:24 PMdyld[42183]: symbol not found in flat namespace '_FIRCLSExceptionRecordNSException'
This only happens when running tests. I have disabled the native cache, applied the crashkios
plugin and also added the linker options manually to no avail:
compilerOptions.freeCompilerArgs.addAll(
"-linker-options",
"-U _FIRCLSExceptionRecordNSException ",
)
What changed?Stylianos Gakis
07/07/2025, 8:14 AMjessewilson
07/08/2025, 7:37 PM