Description
After updating from PowerSync Kotlin 1.11.1 to 1.11.2 (and powersync-sqlite-core-swift from 0.4.11 to 0.4.12), the iOS app crashes at launch with a dyld error:
dyld: Library not loaded: @rpath/powersync-sqlite-core.framework/powersync-sqlite-core
Referenced from: NotPink.app/NotPink.debug.dylib
Reason: tried: '…/NotPink.app/Frameworks/powersync-sqlite-core.framework/powersync-sqlite-core' (no such file)
The KMP shared framework (NotPink.debug.dylib) dynamically links powersync-sqlite-core.framework via @rpath, but the framework is not present in the app bundle's Frameworks/ directory.
Reverting to 1.11.1 + 0.4.11 resolves the issue.
Environment
- PowerSync Kotlin SDK: 1.11.2 (was 1.11.1)
- powersync-sqlite-core-swift: 0.4.12 (was 0.4.11)
- Kotlin: 2.1.x
- Xcode: 26.0
- iOS target: 26.0
- Project setup: Kotlin Multiplatform with Tuist-generated Xcode project
Setup
The iOS app declares powersync-sqlite-core-swift as an SPM dependency and references it in the app target. The KMP shared framework is built via ./gradlew :shared:embedAndSignAppleFrameworkForXcode.
With 1.11.1 / 0.4.11, the app launches fine — powersync-sqlite-core does not appear as a dynamic dependency of the shared framework.
With 1.11.2 / 0.4.12, the shared framework (NotPink.debug.dylib) gains a dynamic link to @rpath/powersync-sqlite-core.framework/powersync-sqlite-core, which is not automatically embedded in the app bundle by the build system.
Expected behavior
The PowerSync Kotlin SDK should either:
- Statically link
powersync-sqlite-core into the shared framework (as it appeared to do in 1.11.1), or
- Document that
powersync-sqlite-core.framework must be manually embedded in the iOS app bundle, with setup instructions for common project configurations (SPM, CocoaPods, Tuist, etc.)
Steps to reproduce
- Create a KMP project using
com.powersync:core:1.11.2
- Add
powersync-sqlite-core-swift 0.4.12 as an SPM dependency in the iOS app
- Build and run on iOS simulator
- App crashes at launch with the dyld error above
Workaround
Pin to com.powersync:core:1.11.1 and powersync-sqlite-core-swift:0.4.11.
Description
After updating from PowerSync Kotlin 1.11.1 to 1.11.2 (and
powersync-sqlite-core-swiftfrom 0.4.11 to 0.4.12), the iOS app crashes at launch with adylderror:The KMP shared framework (
NotPink.debug.dylib) dynamically linkspowersync-sqlite-core.frameworkvia@rpath, but the framework is not present in the app bundle'sFrameworks/directory.Reverting to 1.11.1 + 0.4.11 resolves the issue.
Environment
Setup
The iOS app declares
powersync-sqlite-core-swiftas an SPM dependency and references it in the app target. The KMP shared framework is built via./gradlew :shared:embedAndSignAppleFrameworkForXcode.With 1.11.1 / 0.4.11, the app launches fine —
powersync-sqlite-coredoes not appear as a dynamic dependency of the shared framework.With 1.11.2 / 0.4.12, the shared framework (
NotPink.debug.dylib) gains a dynamic link to@rpath/powersync-sqlite-core.framework/powersync-sqlite-core, which is not automatically embedded in the app bundle by the build system.Expected behavior
The PowerSync Kotlin SDK should either:
powersync-sqlite-coreinto the shared framework (as it appeared to do in 1.11.1), orpowersync-sqlite-core.frameworkmust be manually embedded in the iOS app bundle, with setup instructions for common project configurations (SPM, CocoaPods, Tuist, etc.)Steps to reproduce
com.powersync:core:1.11.2powersync-sqlite-core-swift0.4.12 as an SPM dependency in the iOS appWorkaround
Pin to
com.powersync:core:1.11.1andpowersync-sqlite-core-swift:0.4.11.