Just removed Crashlytics from the podfile, then added it as a Swift Package. Built for an actual device just fine. But when I switch to the Simulator, no go (and tried deleting Derived folders etc – no change).
Another dev using Xcode 13.2.1 on an Intel Mac can build for the Simulator just fine.
Doesn’t matter if I delete DerivedFolder then build first for Simulaor or for device – when I get to Simulator it always fails same errors.
The Excluded Architectures
for everything are arm64
, Build Active Architure=YES
Xcode 13.4.1
Mac: Monterey 13.4
ld: warning: ignoring file .../Build/Products/Debugging-iphonesimulator/FirebaseCrashlytics.o, building for iOS Simulator-x86_64 but attempting to link with file built for unknown-arm64
... (12 others)
ld: warning: ignoring file .../Build/Products/Debugging-iphonesimulator/FirebaseInstallations.o, building for iOS Simulator-x86_64 but attempting to link with file built for unknown-arm64
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_FIRCrashlytics", referenced from:
objc-class-ref in <SomeFile>-8e51ce451b9a03f7582a9e76a8faf6a6.o
objc-class-ref in <SomeFile>-e71967da3e8b662633c9220e635ffc51.o
"_OBJC_CLASS_$_FIRApp", referenced from:
objc-class-ref in SSLog-8e51ce451b9a03f7582a9e76a8faf6a6.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
2
Answers
I posted to Firebase Issues but this issue didn't ring a bell. However, I did trip on an Apple TN on M1 Mac build issues, and doing what they suggested revolved the issue.
It appears that when Xcode builds Packages the rules it follows may not use the target's build settings. I believe the issue was related to
Excluded Architectures
.For me the issue was fixed by making sure Xcode was running in Rosetta mode.