🐛
Xcode12.3で起こるCarthage関連トラブルシューティング
Carthage自体がXcode12に対応してない故、様々なエラーが起こるようです。自分が遭遇したエラーとその解決策を載せておきます。
- ライブラリのビルドができないケース
- プロジェクトのビルドが通らないケース
について書いています。
ライブラリのビルドができない
carthage update
が通りません。
解決策
xcconfigファイルを新規作成します。
作成した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のビルドコマンドを打ち込みます。
carthage update --platform iOS --no-use-binaries
プロジェクトのビルドが通らない
Target integrity
とされ次のようなビルドエラーが出ている場合の直し方です。
Building for iOS, but the linked and embedded framework 'Kingfisher.framework' was built for iOS + iOS Simulator.
解決策
「Build Settings」の欄の「Validate Workspace」を「Yes」とします
Carthage公式の解説
Carthage公式からもXcode12への対応策が公開されています。参考までに
Discussion