ビルド失敗のトラブルシューティング
複数のコマンドが同じ出力を生成する場合
新しいビルドシステムは、プロジェクト内の複数のコマンドが同じ出力を生成するかどうかを検出します。これにより、ビルドが毎回同じ製品を生成できなくなる可能性があります。プロジェクトに同じ出力を生成する複数のコマンドがある場合、以下のようなビルドエラーが表示されます。
error: Multiple commands produce '/Users/user/Library/Developer/Xcode/DerivedData/A-dzgekznnciixqzfsegyqigsizcuw/Build/Products/Debug/A.app/Contents/MacOS/A':
1) Target 'A' has link command with path '/Users/user/Library/Developer/Xcode/DerivedData/A-dzgekznnciixqzfsegyqigsizcuw/Build/Products/Debug/A.app/Contents/MacOS/A'
2) Target 'B' has link command with path '/Users/user/Library/Developer/Xcode/DerivedData/A-dzgekznnciixqzfsegyqigsizcuw/Build/Products/Debug/A.app/Contents/MacOS/A'
(エラー : 複数のコマンドで '/Users/user/Library/Developer/Xcode/DerivedData/A-dzgekznnciixqzfsegyqigsizcuw/Build/Products/Debug/A.app/Contents/MacOS/A' が生成されます。
1)ターゲット 'A' にはパス '/Users/user/Library/Developer/Xcode/DerivedData/A-dzgekznnciixqzfsegyqigsizcuw/Build/Products/Debug/A.app/Contents/MacOS/A' のリンクコマンドがあります
2)ターゲット 'B' にはパス '/Users/user/Library/Developer/Xcode/DerivedData/A-dzgekznnciixqzfsegyqigsizcuw/Build/Products/Debug/A.app/Contents/MacOS/A' のリンクコマンドがあります)
この場合、ターゲット A とターゲット B の両方が同じバイナリファイルをコンパイルおよびリンクしているため、ビルドの完了後にどちらがディスク上にあるかがあいまいになります。どちらの出力が複製されるかに応じて、このエラーにリストされるさまざまな型のファイルとコマンドが表示される場合があります。
注意 : 出力が < および > 文字で囲まれている場合、それは関連するコマンドを順序付けるためにビルドシステムによって使用される特別な種類の出力ですが、必ずしもディスク上のファイルに対応するわけではありません。
出力がそれらの各ターゲットのクライアントによって必要とされるために複数のターゲットが同じ出力を生成する場合、他のターゲットが依存できる新しいターゲットへのその出力の作成を除外します。
出力が複数の異なる製品であり、並行して存在する必要がある場合は、それらが一意の製品名を持っていることを確認する必要があります。
ターゲットの製品名を変更する
- プロジェクトエディタ で、ターゲットを選択し、[Build Settings(ビルド設定)] をクリックします。
- 検索フィールドに product と入力して、ビルド設定のリストをフィルタリングします。
- [Product Name(製品名)] 行をダブルクリックして、表示されるダイアログに新しい製品名を入力します。
- ダイアログを閉じるには、プロジェクトエディタの任意の場所をクリックします。