XcodeプロジェクトファイルにFirebaseをインストール後ビルドをしたら以下のエラーに引っかかった時の対処法
ld: in /Users/[ユーザー名]/[プロジェクト名]/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(FIRAnalyticsConnector_a8eeba373b74508311b8b22b8d3202a6.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/[ユーザー名]/[プロジェクト名]/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
##開発環境
Xcode 12.3
M1 MacBook Air
##なぜ、このようなエラーが発生するのか
arm64 アーキテクチャのサポートとXcode12互換バージョンは、多くの一般的なサードパーティライブラリ(Firebase、AFNetworkingなど)ではまだ提供されていません
とのことです。
##対処法 ステップ①
まず、プロジェクトのBuild Settings
のExcluded Architectures
のDebug
とRelease
に
Any iOS Simulator SDK
arm64
を追加することでarm64を除外します。
##対処法 ステップ②
ステップ②に関しては、手動でarm64を除外する方法と、podFile
書き換え後にpod update
をして上書きする方法があります。
###・手動でarm64を除外する方法
次にPodsのBuild Settings
のExcluded Architectures
のDebug
とRelease
にも
Any iOS Simulator SDK
arm64
を追加することでarm64を除外します。
###・PodFile書き換え後、updateで上書きする方法
下記のコードをPodFileに追記し、pod update
を行う
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
end
##対処法 ステップ③
プロジェクト.xcworkspaceを立ち上げ後、Command
+ Shift
+ K
でクリーンします。
すると、シュミレーターで立ち上げることが出来ました。
##参考
XCode 12, FIRAnalyticsConnector, Build Error
Xcode 12 Compilation Errors (While running with iOS 14 Simulators)
何か間違いやより良い方法がありましたら、優しく教えていただけると幸いです🙇♂️