Xcodeでビルド時、「Command PhaseScriptExecution failed with a nonzero exit code」と出た時の対処法
はじめに
ここでは、表題の通りCommand PhaseScriptExecution failed with a nonzero exit codeと出た時に私が行った対処を書きます。かなり時間がかかったので、備忘録として残します。
前提条件
OS…Mac
Xcodeのバージョン…Xcode16.0
Xcodeを最新バージョンに上げていること
Xcodeのバージョンを上げた後、Update to recommended settings設定を行っていること
現象
会社がずいぶん前に開発したiOSアプリのバージョンアップ対応で発生しました。
Xcode15.0をXcode16.0にしたうえでビルドを通そうとしたところ、「Command PhaseScriptExecution failed with a nonzero exit code」と出てしまい、ビルドが完了できなくなっていました。
ログを確認したところ、「File Doesn’t Exist, Will Create : /Users/~.plist」とあったので、plistファイルが指定場所にないのかと確認したのですが、存在していたため何が原因でこのエラーが起きているのか分かりませんでした。
対処法
①.plistファイルのIdentity and Type画面を確認
Xcode上でIdentity and Type画面に表示される.plistファイルの相対パスがBuild SettingのInfo.plist File項目で設定したパスと一致しているか確認してください。
私は両社のパスが異なっていたため、以下の対応をしました。
・Xcodeの左画面から.plistに関係する部分をクリックして選択する
・上記の状態でIdentity and Type画面を開く
・Locationを「Relative to Project」と変更する
以上をするとLocation項目の真下に.plistファイルパスが表示されるので、それがBuild SettingのInfo.plist File項目で設定したパスと一致しているか確認します。
②Build Phasesの設定確認
XcodeのRun Script項目にあるInput Files項目に.plistファイルが設定されているか確認してください。
私のiOSアプリではビルド時に.plistファイルを読み込むスクリプトが書かれていたにも関わらず、設定されていませんでした。
Input Files項目は以下の順でたどるとあります。
・「Xcode左にあるプロジェクト名をクリックして選択」
・「TARGETSにあるアプリ名を押下」
・「Build Phasesを押下」
・「Run ScriptからInput Filesを見つけて設定する」
なお、設定するInput Filesは相対パスになります。xcode.projファイルと比べた際、plistがどこに位置するかを考えてください。
まとめ
上記の2つを実施したところ、ビルドが正常に通りました。Macはほとんど触ったことがなかったのでてこずりましたが、問題が解消できてほっとしました。同じようなエラーに遭遇した際、この記事がお役に立てば幸いです。
コストパフォーマンスの高い中古パソコンをお探しの方はCØLLEDA!
中古や再生品をお探しの方々、特にコストパフォーマンスを重視する学生やフリーランスの方はCØLLEDA(コレダ)をお勧めします。
CØLLEDA(コレダ)は、中古パソコンや再生品のオンラインショップで、ノートパソコン、デスクトップ、タブレットなど幅広い商品を取り扱っています。