エラー内容
XcodeやCocoaPodsなどのフレームワークのバージョンを変更したりすると以下のようなエラーに出会う。
このエラーに悩ませられまくったので、今回ここに解決方法を記載する。
Command PhaseScriptExecution failed with a nonzero exit code
解決方法(2パターン)
解決方法は2パターンあります。どちらかの対応を行えば、おそらく解決できるかと。
解決方法①:キーチェーンのリフレッシュ
STEP.1
キーチェーンを開く
STEP.2
ログインをロック
「ログイン」を右クリックして「キーチェーン”ログイン”をロック」をクリック
※Macのバージョンを上げてからか、非活性になっている。。
STEP.3
ログインを解除
すぐさま、同じ手順で解除を行う。
「ログイン」を右クリックして「キーチェーン”ログイン”を解除」をクリック
STEP.4
Mac再起動
Macを再起動する
STEP.5
DerivedData削除
念の為、DerivedDataを削除する
rm -rf ~/Library/Developer/Xcode/DerivedData/プロジェクト名
この解消法はよくわからないが、Xcode10からXcode11に変更したときにこの方法で解決した。
解決方法②:シミュレータからarm64を除外する
STEP.1
VALID_ARCHSを削除する
User-Defined
からVALID_ARCHS
を削除する
.xcodeproj > Project > Build settingsでVALID_ARCHS
を検索し、引っ掛かったら削除する
これはXcode12では非推奨になった。
STEP.2
arm64を除外
.xcodeproj > Project > Build settingsでExcluded Architectures
で検索し、そこのarm64
を指定する
以下のように追加する。
ダメな例
自分は、このエラーと戦っている時、以下のように指定してしまっていてうまく除外できていないかった。
以下のように全ての項目をarm64
で除外してしまうとうまくいかない。
STEP.3
Podfileに以下のコードを記述
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
最近(2021/08/04)起きた当エラーは、この対応で解消された。
参考文献
- Zenn-(Xcode 12でシミュレータを対象にビルドできない場合やること)
- Qiita-(Xcodeでビルドできなかった話と対処法(Command PhaseScriptExecution failed with a nonzero exit code))
- Qiita-(【Xcode 12.1】line 144: ARCHS[@]: unbound variable Command PhaseScriptExecution failed with a nonzero exit code)
- Qiita-(command phasescriptexecution failed with a nonzero exit code エラーとの戦い)