Xcode12でcarthageのFrameworkを更新しようとするとTask failed with exit code 1:になる時の対処法


Xcodeのバージョンも上がったのでcarthage updateするか〜と思ってしたところ以下の様なエラーが発生した時の対処。

筆者環境

% carthage version
0.35.0
% sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.6

Xcode12Beta〜Xcode12GM

手順

まずコマンドラインツールが現在のバージョンとあってるかの確認。
Xcode→Preferences→Locations→CommandLineToolsのXcodeバージョンを合わせる。

exit code 1:出てるなら変更していると思いますが一応の確認。。。

その後xcconfigファイルをプロジェクトのルートなどわかりやすい場所に新規作成

以下二行を作成したファイルに追加

EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64=arm64 arm64e armv7 armv7s armv6 armv8
EXCLUDED_ARCHS=$(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT))

現在こんな感じ

ターミナルで以下のコマンドを打つ。

% export XCODE_XCCONFIG_FILE=(xcconfigのパス)

アップデート

% carthage update --platform iOS --no-use-binaries --cache-builds

喜ぶ。

以上です。