Michael Paus
01/31/2024, 9:40 AMld: Undefined symbols:
_sqlite3_bind_blob, referenced from:
_co_touchlab_sqliter_sqlite3_sqlite3_bind_blob_wrapper69 in composeApp[4](libco.touchlab:sqliter-driver-cinterop-sqlite3-cache.a.o)
_sqlite3_bind_double, referenced from:
_co_touchlab_sqliter_sqlite3_sqlite3_bind_double_wrapper71 in composeApp[4](libco.touchlab:sqliter-driver-cinterop-sqlite3-cache.a.o)
_sqlite3_bind_int64, referenced from:
_co_touchlab_sqliter_sqlite3_sqlite3_bind_int64_wrapper73 in composeApp[4](libco.touchlab:sqliter-driver-cinterop-sqlite3-cache.a.o)
_sqlite3_bind_null, referenced from:
_co_touchlab_sqliter_sqlite3_sqlite3_bind_null_wrapper74 in composeApp[4](libco.touchlab:sqliter-driver-cinterop-sqlite3-cache.a.o)
...
Does anyone know what might be going wrong here? I am not using any of the touchlab tools directly. These dependencies seem to be pulled in by SQLDelight for example.
I do this on an X86 Mac in case it should matter.Samuele Perricone
01/31/2024, 10:14 AMpoliver
02/02/2024, 2:14 AMPackage.swift
in that repo contains a reference to the binary asset in github packages and a checksum. I don't see this sort of Package.swift
config referenced anywhere in the quick start guide, and there's no indication that the gradle plugin would generate such a Package.swift
file.kpgalligan
02/02/2024, 2:21 AMPackag.swift
to the root. Example from the template: https://github.com/touchlab/KMMBridgeSKIETemplate/blob/main/Package.swift. The GitHub Actions workflow makes a build branch and overwrites that file with the binary deploy (Build: https://github.com/touchlab/KMMBridgeSKIETemplate/blob/318cd25d69155064927f436c6633152af4bc6184/Package.swift)poliver
02/02/2024, 2:24 AMitshan
02/02/2024, 1:16 PM> Failed to publish publication 'KMMBridgeFramework' to repository 'GitHubPackages'
> Could not PUT '<https://maven.pkg.github.com/tddworks/lemonsqueezy-kotlin/com/snacks/lemonsqueezy/shared-kmmbridge/0.1/shared-kmmbridge-0.1.zip>'. Received status code 409 from server: Conflict
• https://github.com/touchlab/KMMBridgeSKIETemplate/blob/main/build.gradle.kts
val autoVersion = project.property(
if (project.hasProperty("AUTO_VERSION")) {
"AUTO_VERSION"
} else {
"LIBRARY_VERSION"
}
Sterling Albury
02/03/2024, 12:00 AMframeworkName
value in all of kmmbridge block in each of the modules but that didn't seem to help. what is the best way to have multiple packages for the modules, or do i need to make an 'allShared' type of module?itshan
02/03/2024, 3:55 AMkmmbridge {
spm {
swiftToolsVersion = "5.9"
platforms {
iOS { v("14") }
macOS { v("13") }
watchOS { v("7") }
tvOS { v("14") }
}
}
}
Zac Sweers
02/03/2024, 9:56 PMJon Bailey
02/06/2024, 5:29 PMlet state: Skie.ApplicationNew.ApplicationSummary.__Sealed = onEnum(of: getState())
(obv not needed there but if it's stored in a field on a struct or something then the type is needed).
It seems like this works on both sealed interfaces and classes and reads a fair bit nicer, as well as being easier to type/find in autocomplete:
extension ApplicationSummary {
typealias Sealed = Skie.ApplicationNew.ApplicationSummary.__Sealed
}
as you're just adding .Sealed
(or maybe Exhaustive/Enum or something) on to the end of the main type from the shared code.
Another thing that would also help readability would be if the generated swift enums conformed to a protocol with an init that does self = onEnum(of: sealed)
so that the conversion to the swift enum could be done in generic functions, reducing the need to call onEnum(of:) all over the codebase.Niek
02/10/2024, 1:15 PMxctest (14186) encountered an error (Failed to load the test bundle. (Underlying Error: The bundle “MultiplatformBridgeTests” couldn’t be loaded. The bundle couldn’t be loaded. Try reinstalling the bundle. dlopen(/path/to/project/derived-data/project/Build/Products/Debug-iphonesimulator/MultiplatformBridgeTests.xctest/MultiplatformBridgeTests, 0x0109): symbol not found in flat namespace '_OBJC_CLASS_$_FIRCrashlytics'))
I have the crashlytics link Gradle plugin enabledAlejandro Moya
02/13/2024, 9:24 PMUndefined symbols for architecture arm64:
"_FIRCLSExceptionRecordNSException", referenced from:
_kfun:co.touchlab.crashkios.crashlytics.CrashlyticsCallsActual#sendFatalException(kotlin.Throwable){} in TSSharedLibrary.framework.o
"_OBJC_CLASS_$_FIRCrashlytics", referenced from:
objc-class-ref in TSSharedLibrary.framework.o
"_OBJC_CLASS_$_FIRExceptionModel", referenced from:
objc-class-ref in TSSharedLibrary.framework.o
"_OBJC_CLASS_$_FIRStackFrame", referenced from:
objc-class-ref in TSSharedLibrary.framework.o
ld: symbol(s) not found for architecture arm64
On the docs it explains that we should add crashlyticslink, I added it but it still failskpgalligan
02/13/2024, 9:37 PMAlejandro Moya
02/13/2024, 10:18 PMAlejandro Moya
02/13/2024, 10:20 PMlinkPodReleaseFrameworkIosArm64
stepAlejandro Moya
02/13/2024, 10:21 PMlinkPodReleaseFrameworkIosSimulatorArm64
Alejandro Moya
02/13/2024, 10:32 PMAlejandro Moya
02/13/2024, 10:45 PMStylianos Gakis
02/14/2024, 11:35 AMInvalid bundle structure. The "<http://Iosapp.app/Frameworks/ourkmplibrary.framework/ourkmplibrary|Iosapp.app/Frameworks/ourkmplibrary.framework/ourkmplibrary>" binary file is not permitted. Your app cannot contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. For details, visit: <https://developer.apple.com/documentation/bundleresources/placing_content_in_a_bundle>
Does this ring a bell at all?
Trying to look up this issue, I am only finding this super old issue which is marked as "fixed" but I am not really sure what the fix here is.
And we are using isStatic = true
too, which maybe we should not? I am not sure, the KMMBridge samples have it set to true so I did the same.
I also briefly discussed this here, but in my Xcode I can't quite find the place where I would even be able to edit this. In "Dependencies > General > Frameworks and Libraries > " I can see our library there, but I do not see an option to embed it or not, there's just no option there.Zsolt Kovacs
02/20/2024, 4:27 PMinterface Foo {
suspend fun getStringAsync(): String?
}
If I would like to implement the interface in Swift side, my code will have to be:
class FooImpl: Foo {
func __getStringAsync() async throws -> String {}
}
Notice the return type is String
, rather than String?
as I would expect.
I have the following gradle configuration:
skie {
features {
coroutinesInterop = true
}
}
----------
If however, I disable SKIE, it will look correct on the Swift side:
class FooImpl: Foo {
func __getStringAsync() async throws -> String? {}
}
Am I missing something, or is this intended behavior?ribesg
02/21/2024, 3:55 PMJon Bailey
02/21/2024, 6:52 PMonEnum(of:)
functions. Would it be possible to add @_disfavoredOverload
to the optional one?Chris Mulder
02/22/2024, 1:24 PMFeri Nagy
02/23/2024, 10:21 AMAshu Tyagi
03/01/2024, 5:09 AMbrabo-hi
03/08/2024, 3:21 PMjohnfrey99
03/08/2024, 5:44 PM[11:36:17][~] $ xcode-kotlin install
WARN: Task <NSConcreteTask: 0x600000ca82d0> had non-empty error output:
2024-03-08 11:36:27.191 defaults[19756:17696988]
The domain/default pair of (/Applications/Xcode.app/Contents/Info, DVTPlugInCompatibilityUUID) does not exist
xcode-kotlin has crashed, do you want to upload the crash report to Touchlab? y/n: n
Uncaught Kotlin exception: kotlin.IllegalStateException: co.touchlab.xcode.cli.XcodeHelper$installationAt$pluginCompatabilityIdResult$1@870121b0. Task /usr/bin/defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID (input: 0 bytes) exited with code 1 (reason 1).
Standard input:
Standard output:
Standard error:
2024-03-08 11:38:44.000 defaults[19907:17699023]
The domain/default pair of (/Applications/Xcode.app/Contents/Info, DVTPlugInCompatibilityUUID) does not exist
at 0 xcode-kotlin 0x1026c823b kfun:co.touchlab.xcode.cli.util.Shell.ExecutionResult#checkSuccessful(kotlin.Function0<kotlin.String>){}co.touchlab.xcode.cli.util.Shell.ExecutionResult + 1067
at 1 xcode-kotlin 0x1026b2093 kfun:co.touchlab.xcode.cli.XcodeHelper#installationAt(co.touchlab.xcode.cli.util.Path){}co.touchlab.xcode.cli.XcodeHelper.XcodeInstallation + 1279
at 2 xcode-kotlin 0x1026b6f13 kfun:co.touchlab.xcode.cli.command.BaseXcodeListSubcommand#xcodeInstallations(){}kotlin.collections.List<co.touchlab.xcode.cli.XcodeHelper.XcodeInstallation> + 2563
at 3 xcode-kotlin 0x1026b8917 kfun:co.touchlab.xcode.cli.command.Install#execute(){} + 187
at 4 xcode-kotlin 0x102669393 kfun:kotlinx.cli.ArgParser#parse(kotlin.collections.List<kotlin.String>){}kotlinx.cli.ArgParserResult + 9311
at 5 xcode-kotlin 0x1026badb7 kfun:co.touchlab.xcode.cli#main(kotlin.Array<kotlin.String>){} + 3007
at 6 xcode-kotlin 0x1026fa493 Init_and_run_start + 447
at 7 xcode-kotlin 0x1026fa5bf Konan_main + 15
at 8 dyld 0x189b350df start + 2359
Abort trap: 6
Filip Dolník
03/12/2024, 8:56 AMStylianos Gakis
03/13/2024, 12:19 AMdo { for await item in flow … } catch { here there was a cancellation on Kotlin side }
?
Am I missing some part of the docs that I should look at instead?Bradleycorn
03/15/2024, 3:41 PM