Reputation: 2800
After upgrading to Xcode 12, my project doesn't build for the simulator anymore.
The error I get is:
ld: in ... /Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(
FIRAnalyticsConnector_e321ed8e3db06efc9803f6c008e67a34.o),
building for iOS Simulator, but linking in object file built for iOS, file
'.../Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector'
for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
A workaround is adding arm64
to my project > Build Settings > Excluded Architectures, but then it won't build for my real device.
I already tried cleaning the build folder, updating pod file, restarting etc.
I'm using:
Any ideas?
Upvotes: 41
Views: 38060
Reputation: 8691
For Apple silicon machines I did this in order for the app to work on the simulator:
Please note that you go to PROJECT and not TARGETS.
Step 1:
Go to your top project and then -> under PROJECT, add arm64
to Excluded Architectures
Step 2:
Go to Pods -> under PROJECT and add arm64
to Excluded Architectures
Upvotes: 3
Reputation: 2800
Ok, I finally found a fix for the issue.
Change "Build Active Architecture Only" to "Yes" also for "Release".
The setting can be found selecting your project > "Build Settings" > "Targets" (your target) > "Architectures"
Source and more elaborate explanation can be found here:
https://stackoverflow.com/a/64139830/4134160
Please note that the problem is not related to Firebase. I'll still leave it since it might lead others to this issue and help them to resolve this.
Apple Silicon
If you're running on an apple silicon chip, consider @Aspen's answer below: https://stackoverflow.com/a/65460729/4134160
Upvotes: 72
Reputation: 65
that worked. I open Xcode using Rosetta.
brew install 417-72KI/tap/xcode-arch
$ xcode-arch -p
arm64 # `Open using Rosetta` is off
$ xcode-arch -c
Set x86_64 for /Applications/Xcode.app
$ xcode-arch -p
x86_64 # `Open using Rosetta` is on
$ xcode-arch -u
Set arm64 for /Applications/Xcode.app
$ xcode-arch -p
arm64 # `Open using Rosetta` is off
Upvotes: 0
Reputation: 2180
if you run on Apple Silicone with new Macbook Pro M1 processor. This is a known issue.
Firebase not compiling on Apple Silicone
Upvotes: 0
Reputation: 2680
After adding arm64
to Excluded Architectures
for the main project AND for the Pods project, I was able to resolve this issue I ran into on an Apple M1.
I also had to clear the DerivedData
folder and restart Xcode.
For more information, see: https://medium.com/@khushwanttanwar/xcode-12-compilation-errors-while-running-with-ios-14-simulators-5731c91326e9
Upvotes: 38
Reputation: 768
On my end, following the instruction from this link https://github.com/firebase/firebase-ios-sdk/blob/CocoaPods-7.2.0/AppleSilicon.md, solves it.
Upvotes: 3
Reputation: 9913
remove -fraemwork "FIRAnalyticsConnector" from the list of from the TARGET -> "build settings" -> OTHER_LDFLAGS
Upvotes: 0
Reputation: 1234
Had same problem in Xcode v12.4
after running pod install
.
After some searching inside my project I finally found reference to it under target's Build Phases
in Link Binary With Libraries
section. Removing FIRAnalyticsConnector.framework
from the list solved my problem.
Upvotes: 2
Reputation: 3804
My case was a little different. According to this Firebase engineer,
FIRAnalyticsConnector
is now part of the xcframework version of FirebaseAnalytics and isn't needed to link.
Going into the Targets Build Settings
(not the Project), searching for Other Linker Flags
, and then deleting FIRAnalyticsConnector
from the list took care of the issue for me.
Interestingly, when I ran pod deintegrate
and the pod install
it did not fix this issue.
Upvotes: 11
Reputation: 416
I fixed the issue by running xcode12 under Rosetta (Apple M1).
Open Finder -> Application -> locate Xcode -> right click -> get info -> check open using rosetta.
then reopen xcode.
Upvotes: 26