問題点
Carthageを使っているプロジェクトにおいて、Xcodeを9から10に上げたところ、Error: Multiple commands produce
というエラーのためにビルドができませんでした。
エラー文言をみるとこんなことが書いてあるようです
- ビルドターゲットはcopy commandを持っている
- このコマンドはRun Script carthage copy-frameworksに依存している
Xcode10からデフォルトになった新しいビルドシステムは、フレームワークのコピーシステムが厳密に稼働するようで、コピーが重なるとエラーとなってしまうようです。
解決方法: 古いビルドシステムに戻す
後ろ向きな解決方法。
新しいのがだめなら古いのに戻す方針です。
XcodeメニューからFile > Project/Workspace Setting...
をクリックします。
Build SystemをLegacy Build System
に変更します。
これでビルドがうまくいくはず
解決方法: 重複しているコピーを削除する
新しいビルドシステムを活かした方法。
まず先程Legacy Build System
に変えた設定をNew Build System(Default)
に戻します
TARGETS → Build Phases → Embed Frameworks からエラーで怒られていたFrameworkを消します。
ここではIntercom.framework
を削除します。
すると新しいビルドシステムでビルドができるようになります。
参考
swift - Carthage: Multiple build commands for output file framework - Stack Overflow