realm-swift
realm-swift copied to clipboard
Crash ITMS-90863: Macs with Apple silicon support issue
How frequently does the bug occur?
Always
Description
Having updated Realm to 10.49.3 (and 10.50.0 too) via SPM, and still using it as a static library (so I only imported RealmSwift and dropped Realm), I now have the following error when uploading a binary on AppStoreConnect.
ITMS-90863: Macs with Apple silicon support issue - The app links with libraries that aren’t present in macOS:
@rpath/RealmSwift.framework/RealmSwift
The project runs on iOS universal + Mac Silicon.
So I tried to run on xcode using destination "My Mac (Designed for iPad)" (Mac Silicon), and I confirm that it crashes right at launch with the following error.
dyld[43454]: Library not loaded: @rpath/RealmSwift.framework/RealmSwift
Referenced from: <2B72FA4C-BB7D-36AC-9D23-F3420001FBB9>
/private/var/folders/9s/fqn82tqd1vv6t4j31lhcw6hw0000gn/X/E7DAA30E-6488-5383-9CC0-60FFD2015151/d/Wrapper/KlewosDev.app/KlewosDev
Reason: tried: '{path}/Library/Developer/Xcode/DerivedData/Klewos-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/RealmSwift.framework/RealmSwift' (no such file),
'{path}/Library/Developer/Xcode/DerivedData/Klewos-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (code signature in <7C12C84B-F9ED-31FA-B4DC-33F5E2BDFBAE>
'{path}/Library/Developer/Xcode/DerivedData/Klewos-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' not valid for use in process: Trying to load an unsigned library),
'{path}/Library/Developer/Xcode/DerivedData/Klewos-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file),
'{path}/Library/Developer/Xcode/DerivedData/Klewos-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (code signature in <7C12C84B-F9ED-31FA-B4DC-33F5E2BDFBAE>
'{path}/Library/Developer/Xcode/DerivedData/Klewos-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' not valid for use in process: Trying to load an unsigned library),
'{path}/Library/Developer/Xcode/DerivedData/Klewos-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file),
'/System/iOSSupport/usr/lib/swift/RealmSwift.framework/RealmSwift' (no such file, not in dyld cache),
'/usr/lib/swift/RealmSwift.framework/RealmSwift' (no such file, not in dyld cache),
'/System/Volumes/Preboot/Cryptexes/OS/usr/lib/swift/RealmSwift.framework/RealmSwift' (no such file),
'/private/var/folders/9s/fqn82tqd1vv6t4j31lhcw6hw0000gn/X/E7DAA30E-6488-5383-9CC0-60FFD2015151/d/Wrapper/KlewosDev.app/Frameworks/RealmSwift.framework/RealmSwift' (no such file),
'/private/var/folders/9s/fqn82tqd1vv6t4j31lhcw6hw0000gn/X/E7DAA30E-6488-5383-9CC0-60FFD2015151/d/Wrapper/KlewosDev.app/Frameworks/RealmSwift.framework/RealmSwift' (no such file),
'{path}/Library/Developer/Xcode/DerivedData/Klewos-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file),
'{path}/Library/Developer/Xcode/DerivedData/Klewos-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (code signature in <7C12C84B-F9ED-31FA-B4DC-33F5E2BDFBAE>
'{path}/Library/Developer/Xcode/DerivedData/Klewos-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' not valid for use in process: Trying to load an unsigned library),
'{path}/Library/Developer/Xcode/DerivedData/Klewos-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file),
'/System/iOSSupport/usr/lib/swift/RealmSwift.framework/RealmSwift' (no such file, not in dyld cache),
'/usr/lib/swift/RealmSwift.framework/RealmSwift' (no such file, not in dyld cache),
'/System/Volumes/Preboot/Cryptexes/OS/usr/lib/swift/RealmSwift.framework/RealmSwift' (no such file),
'/private/var/folders/9s/fqn82tqd1vv6t4j31lhcw6hw0000gn/X/E7DAA30E-6488-5383-9CC0-60FFD2015151/d/Wrapper/KlewosDev.app/Frameworks/RealmSwift.framework/RealmSwift' (no such file),
'/private/var/folders/9s/fqn82tqd1vv6t4j31lhcw6hw0000gn/X/E7DAA30E-6488-5383-9CC0-60FFD2015151/d/Wrapper/KlewosDev.app/Frameworks/RealmSwift.framework/RealmSwift' (no such file)
Stacktrace & log output
No response
Can you reproduce the bug?
Always
Reproduction Steps
Upload a binary to AppStoreConnect using Realm 10.49.3+ with SPM as static library (only importing RealmSwift). Or just run any Mac Silicon project with the same settings.
Version
10.50.0
What Atlas Services are you using?
Local Database only
Are you using encryption?
No
Platform OS and version(s)
Mac Silicon
Build environment
Xcode version: 15.3.0 Dependency manager and version: SPM
➤ PM Bot commented:
Jira ticket: RCOCOA-2348
Having same issue on 10.50.0 with similar setup but running on iOS device
Getting right on start:
dyld[3919]: Library not loaded: @rpath/RealmSwift.framework/RealmSwift
Referenced from: <84157580-198A-3981-B2DA-C7D6A3D75B11> /private/var/containers/Bundle/Application/A26D1AE5-4674-46EA-903F-11960F7114CD/App.app/Frameworks/ProjectSDK.framework/ProjectSDK
Reason: tried: '/Users/user/Library/Developer/Xcode/DerivedData/ProjectSDK-einggkreqsykevexdcvaooepttuu/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file), '/private/preboot/Cryptexes/OS/Users/user/Library/Developer/Xcode/DerivedData/ProjectSDK-einggkreqsykevexdcvaooepttuu/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file), '/private/var/containers/Bundle/Application/A26D1AE5-4674-46EA-903F-11960F7114CD/App.app/Frameworks/RealmSwift.framework/RealmSwift' (no such file), '/private/var/containers/Bundle/Application/A26D1AE5-4674-46EA-903F-11960F7114CD/App.app/Frameworks/ProjectSDK.framework/Frameworks/RealmSwift.framework/RealmSwift' (no such file), '/Users/user/Library/Developer/Xcode/DerivedData/ProjectSDK-einggkreqsykevexdcvaooepttuu/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file), '/private/preboot/Cryptexes/OS/Users/user/Library/Developer/Xcode/DerivedData/ProjectSDK-einggkreqsykevexdcvaooepttuu/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file), '/private/var/containers/Bundle/Application/A26D1AE5-4674-46EA-903F-11960F7114CD/App.app/Frameworks/RealmSwift.framework/RealmSwift' (no such file), '/Users/user/Library/Developer/Xcode/DerivedData/ProjectSDK-einggkreqsykevexdcvaooepttuu/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file), '/private/preboot/Cryptexes/OS/Users/user/Library/Developer/Xcode/DerivedData/ProjectSDK-einggkreqsykevexdcvaooepttuu/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework/RealmSwift' (no such file), '/private/var/containers/Bundle/Application/A26D1AE5-4674-46EA-903F-11960F7114CD/App.app/Frameworks/RealmSwift.framework/RealmSwift' (no such file)
@Kalzem In your case I think you can just select Embed & Sign
next to realm framework in your project settings, in my case it will be a bit more complicated as I use realm framework within my own framework
@shvetsjr
By selecting Embed & Sign, I'll be using Realm as a dynamic library instead of static, which would only be a temporary workaround. But even this workaround doesn't work in my case. I get the following error
Cycle inside Project; building could produce unreliable results. Cycle details: → Target 'Project' has copy command from ‘{path}/Library/Developer/Xcode/DerivedData/Klewos-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework' to '{path}/Library/Developer/Xcode/DerivedData/Project-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/Project.app/Frameworks/RealmSwift.framework' ○ Target 'Project' ○ That command depends on command in Target 'Project': script phase “Upload dSym to Firebase” ○ Target 'Project' has a command with output ‘{path}/Library/Developer/Xcode/DerivedData/Project-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/Project.app.dSYM' ○ Target 'Project' has process command with output ‘{path}/Library/Developer/Xcode/DerivedData/Project-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/Project.app/Info.plist' ○ Target 'Project' has copy command from ‘{path}/Library/Developer/Xcode/DerivedData/Project-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/PackageFrameworks/RealmSwift.framework' to ‘{path}/Library/Developer/Xcode/DerivedData/Project-dutkslliiuiushfoeqzurfcmcwrp/Build/Products/Debug-iphoneos/Project.app/Frameworks/RealmSwift.framework'
Note that the "Upload dSym to Firebase" command mentioned in the cycle issue is the official command from Firebase documentation.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
A functional workaround in my case was removing Realm from SPM and install it with Cocoapods. Don't forget to clean Package (Xcode > File > Packages > Reset Cache) and to clean Build.
A functional workaround in my case was removing Realm from SPM and install it with Cocoapods. Don't forget to clean Package (Xcode > File > Packages > Reset Cache) and to clean Build.
That sucks.. Our project just got super clean and we just dropped Cocoapods..
We're going to investigate providing the option to build statically via SPM. This is tracked by https://github.com/realm/realm-swift/issues/8588.
I'm not sure why the firebase upload symbols command is causing a cycle, but you can probably reach out to their team for guidance.
Please this fix is critical. I am also waiting for an update
Any news about this fix?