【Xcode/Swift】Command PhaseScriptExecution failed with a nonzero exit codeの2パターン解決方法

エラー内容

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)起きた当エラーは、この対応で解消された。