【発生したこと】
Xcode 12 が正式リリースされてから、もう数ヶ月経ちました。2021年4月から、審査提出には Xcode 12 でビルドする必要があります。
ということで、Xcode 12 にアップデートしたのですが、
「実機ビルドはできても、シミュレータでビルドしようとするとエラー(※1)が起きる」
という事態に陥りました。
(※1:”Command PhaseScriptExecution failed with a nonzero code” というコンパイルエラーが発生したり、”missing one or more architecture required by this target: arm64” というエラーダイアログが表示されたりなど、様々でした。開発している環境によって異なる(原因は不明)ようなのですが、とにかく「実機ビルド⭕️ シミュレータビルド❌」ということは共通していました)
【解決方法】
Xcode 12でシミュレータを対象にビルドできない場合やること
上記のページの「User-DefinedからVALID-ARCHSがあれば項目ごと完全に消す」と同じように
Xcodeの「PROJECT>Build Settings>User-Defined>VALID-ARCHS」を削除します(※2)。
(※2:リンク先のページにも記載されていますが、「完全に削除」する必要があります(空白が残ってたりすると❌))
Xcode 12 から VALID-ARCHS は非推奨なようです(詳細は上記ページに記載されているので、そちらをご参照ください)。
私の環境の場合は、この作業だけで解決しました。なので最小限の修正で済ませたいという方は、他作業は行わなくても良いはずです。
(そうでない方はリンク先をご覧ください)
【今回の件についての所感】
本件で、私の環境では “Command PhaseScriptExecution failed with a nonzero code” というエラーが表示されるだけでした。
このエラーは原因が分かりにくいみたいです(「CocoaPods周り」というページや、「DerivedDataを削除すれば治る」というページなど、様々ありました)。
検索して出たページに書かれていることを、手当たり次第に試してみたのですが、解決はできませんでした。
なので、より特殊な事例である(と考えられる)、「シミュレータのみで実行できない」ということで検索したら、参考ページが出てきたという感じです。
もしかしたら、エラー文で検索してダメなら、発生している事象で検索してみるのも手かもしれません。
(今回はヤケクソで「xcode12 シミュレータだけ ビルドできない」と検索しました。これでちゃんと検索できるGoogleすげぇー)