M1 Mac & Xcodeで「building for iOS Simulator, but linking in object file ... for architecture arm64」エラーの対処法
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)
何か間違いやより良い方法がありましたら、優しく教えていただけると幸いです🙇♂️
Author And Source
この問題について(M1 Mac & Xcodeで「building for iOS Simulator, but linking in object file ... for architecture arm64」エラーの対処法), 我々は、より多くの情報をここで見つけました https://qiita.com/littleossa/items/ff75b19e0ac6713941f8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .