CatHand Blog

アプリ開発やMac弄り

M1 Macでシミュレータ向けビルドが通るようにする

CocoaPods等でバイナリの形で公開されているライブラリの中には、実機ビルドや Intel Mac のシミュレータ向けビルドは通るのにM1 Macのシミュレータ向けビルドが通らないものがあります。

例えば GoogleSignIn です。これは以下のissueでも盛んにリクエストされていますが、一向に対応される気配がありません。

github.com

このようなとき、シミュレータ向けビルドのアーキテクチャからarm64を省くとビルドを通すことができ、M1 Macでシミュレータ上で動作させることが可能になります。

  • Swift Package Manager を使っていたら全部 CocoaPods に変更する
    • SPMで該当オプションを変更するやり方がわからなかった
  • ターゲットの Excluded architectures に arm64 を追加
  • Podfile の末尾に以下を追加
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
    end
  end
end

以下を参考にさせていただきました。

zenn.dev