開発環境
Xcode 15.3
MacBook Air M3
環境移行
今まで使用していたMacだと審査に出せなくなってしまう為、新しくMacを購入してもらい環境移行しようとしたら、下記の見慣れぬメッセージが…
Building for 'iOS-simulator', but linking in object file (/path/.a[arm64][3](alloc.o)) built for 'iOS' Linker command failed with exit code 1 (use -v to see invocation)
とりあえず、Product->Clean Build Folder を行い、ビルドをかけてみるが解決せず。
意味を調べてみると、
iOS シミュレータ」用にビルドされていますが、「iOS」用にビルドされたオブジェクト ファイル (/path/.a[arm64][3](alloc.o)) にリンクされています。 リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用します)
なるほど、分からん。
とりあえずエラーで調べてみると、同じ物は出てこなかったが似たような物だとM1チップになった際にシミュレータが対応していないのが原因との事。
対処法① arm64ビルドをシミュレータから除外してみる
PROJECT->TARGET->Build Setting->Architectures->Excluded Architectrues->Debug->Any iOS Simulator SDK
にarm64を追加する事によってarm64でのビルドを回避するらしいが、下記エラーが出る。
特にmodulemapのエラーは大量発生。
Command SwiftCompile failed with a nonzero exit code
Module map file 'path/ライブラリ.modulemap' not found
対処法② module map file のエラーを解決する
Pods側の
PROJECT->Architectures->Build Active Architecture Only->Debug
をNoにする。
エラーが消えたのでClean Build Folderを行い、ビルドしたところ無事シミュレータの起動を確認。
問題解決
今回やった事としては、
メインのPROJCET側でarm64ビルドを除外し、Pods側は非アクティブでもビルドしますよって事らしい。
翻訳かけながら片っ端から記事を読みまくり、CocoaPodsでPodsを再インストールしたりupdateしたりProfile.lock消したりして環境破壊しまくった数日ではありましたが、最終的に私の環境だと上記の対処法のみで問題なかったです。