M1チップのMacで「error: the linked framework 'Pods_~' missing one or more architectures required by this target: x86_64.」エラーが出る場合の解決方法
スポンサーリンク

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のエラーを解決させました。詳しい記事はこちら。

M1チップのMacで「linker command failed with exit code 1 ('' for architecture 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を動かすための環境がなくなってしまったからだと推測されます。

PodsのBuildSettings

この対応でリビルドしてシミュレーターで実行可能となりました。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事