Xcode12.3で起こるCarthage関連トラブルシューティング

公開:2021/01/11
更新:2021/01/11
1 min読了の目安(約1400字TECH技術記事

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への対応策が公開されています。参考までに

https://github.com/Carthage/Carthage/blob/master/Documentation/Xcode12Workaround.md