Apple Silicon(M1チップ)のMacでビルドエラーが発生したときの解決方法
Apple Silicon (Apple M1チップ)のMac mini(macOS Big Sur)でCocoaPodsを使用したプロジェクトのビルド時にエラーが発生しました。
シミュレーターでのビルドでerror: the linked framework 'Pods_~' missing one or more architectures required by this target: x86_64.
ヒーラー
arm64のエラーを解決させた後の、x86_64関連エラーで不整合がありそう
問題
前回arm64のエラーを解決させました。詳しい記事はこちら。
その後、CocoaPodsでライブラリを追加してpod installし、シミュレーターでビルド実行したところ、以下エラーが発生しました。
/~.xcodeproj The linked framework 'Pods_~ error: The linked framework .framework' is missing one or more architectures required by this target: x86_64.
追加した後のpodfileのライブラリは以下のとおりです。
pod 'Firebase/Core'
pod 'Firebase/Database'
pod 'Firebase/Firestore'
pod 'Firebase/Storage'
pod 'Firebase/Messaging'
pod 'Firebase/Auth'
pod 'ActiveLabel'
pod 'SDWebImage', '~>4.4.2'
pod 'JGProgressHUD', '~>2.0.3'
pod 'YPImagePicker'
解決方法
結論としては、「Podsプロジェクト」の「Build Settings」の「Architectures」設定の「Build Active Architecture Only」のDebugにデフォルトで設定されていたYesをNoに変更することで解決しました。
この設定がYesだと、Podsライブラリを作成する上で、アクティブなアーキテクチャーだけになってしまいますが、Noにすることで、全てのアーキテクチャーに対応したビルドを生成してくれるとのことです。
先の対応で、シミュレーターでのビルド時に、arm64のアーキテクチャを除外する設定をしましたが、どうやら、Podsのライブラリを追加したことで、デフォルトのまま(アクティブなアーキテクチャーだけ)だとPodsライブラリにx86_64さえもなく、64bitを動かすための環境がなくなってしまったからだと推測されます。
この対応でリビルドしてシミュレーターで実行可能となりました。