Xcode12→シミュレータだけビルドできない!? 〜iOS開発〜

 
【発生したこと】

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すげぇー)