Edited at

Xcode10 Error: Multiple commands produceを解決する

More than 1 year has passed since last update.


問題点

Carthageを使っているプロジェクトにおいて、Xcodeを9から10に上げたところ、Error: Multiple commands produce というエラーのためにビルドができませんでした。

 2018-09-25 17.40.55.jpg

エラー文言をみるとこんなことが書いてあるようです


  • ビルドターゲットはcopy commandを持っている

  • このコマンドはRun Script carthage copy-frameworksに依存している

Xcode10からデフォルトになった新しいビルドシステムは、フレームワークのコピーシステムが厳密に稼働するようで、コピーが重なるとエラーとなってしまうようです。


解決方法: 古いビルドシステムに戻す

後ろ向きな解決方法。

新しいのがだめなら古いのに戻す方針です。

XcodeメニューからFile > Project/Workspace Setting...をクリックします。

 2018-09-25 17.41.40.jpg

Build SystemをLegacy Build Systemに変更します。

 2018-09-25 17.41.52.jpg

これでビルドがうまくいくはず


解決方法: 重複しているコピーを削除する

新しいビルドシステムを活かした方法。

まず先程Legacy Build Systemに変えた設定をNew Build System(Default)に戻します

 2018-09-25 17.43.56.jpg

Carthageのinputファイルはそのまま

 2018-09-25 17.44.23.jpg

Embed Frameworks にエラーで怒られていたFrameworkを消します。

ここではIntercom.frameworkを削除します。

 2018-09-25 17.44.12.jpg

すると新しいビルドシステムでビルドができるようになります。


参考

swift - Carthage: Multiple build commands for output file framework - Stack Overflow