Xcode 10エラー:複数のコマンドが生成する


659

エラー:複数のコマンドが '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'を生成します:1)ターゲット 'OptimalLive'からコピーコマンドがあります'/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' to '/ Users / uesr / Library / Developer / Developer / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhjsawtebkimvwx / Build / Products / Debug-iphoneos / OptimalLive .app / Info.plist '2)ターゲット' OptimalLive 'には、' / Users / uesr / Desktop / workSpace / SEALIVE / SeaLive1.1 / OptimalLive / Server / Masonry / Info.plist 'から' / Users / uesr /へのコピーコマンドがありますライブラリ/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist '3)ターゲット' OptimalLive '入力 '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist'のプロセスコマンドがあります

Xcode9でコードを実行することはできますが、Xcode10にはエラーがあります。


cocoapodsで管理されている依存関係については、stackoverflow.com
Shuo

サードパーティのフレームワークをプロジェクトにインポートし、ソースファイルにinfo.plistがある場合に発生します。このinfo.plistは、アプリのものと競合します。ビルドフェーズから削除するだけ
protspace 2018年

親愛なる読者、この質問に対するすべての答えを読んでください。間違っている可能性のある多くの異なることがあります。
iluvcapra

パス「ビルドフェーズ->バンドルリソースのコピー」に移動します。ファイル名を確認して削除してください。クリーンアップしてアプリケーションを実行
Sagar Sukode

回答:


1225

この問題は、アプリ内の複数のPlistまたは他のファイルが原因で発生している可能性があります

ソリューション->ターゲットを開く->ビルドフェーズ>バンドルリソースコピーinfo.plistしてそこから削除します。

ここに画像の説明を入力してください

注:時計アプリも開発した場合は、時計と時計拡張機能からplistを削除する必要があります。


12
また、誤って追加されたinfo.plistファイルがないか、CocoaPodsなどの依存関係を調べる必要がある場合もあります
Chris Paveglio

68
少し詳しく説明すると、このエラーは、Xcode 10の新しいビルドシステムがプロジェクト構成の問題を捕捉するのに優れているために発生しています。このような問題は、ビルドで微妙な問題を引き起こす可能性があるため、修正することをお勧めします。
リックバラード

2
私の場合は、InfoPlist.stringsという名前のいくつかのローカライズファイルを削除する必要がありました
neowinston

8
私の場合、私はinfo.plist自分のプライベートCocoaPods依存関係の1つにファイルがあり、podspecのsource_filesプロパティと一致していたため、スクープされていました。info.plistモジュールにファイルは必要なかったので、削除しました。
aapierce 2018

3
ありがとう!私はいくつかの開発者プラグインを少し前にコードに追加しており、アプリのinfo.plistと競合するinfo.plistファイルもありました
Christopher Smit

567

このビルドエラーの解決策が見つかりました。Xcode10ビルドシステムで同じ問題を抱えている他の人は、次の手順に従って修正してください。

  1. Xcodeで、「ファイル」->「プロジェクト/ワークスペース設定」に移動します。
  2. ビルドシステムをレガシービルドシステムに変更します。

ここに画像の説明を入力してください 新しいXcode 10でのビルドの問題を解決します。

新しいビルドシステムで作業する場合は、このApple Xcodeヘルプページからトラブルシューティングのヘルプ見つけることができます

お役に立てれば!


4
この問題が発生する理由と、レガシービルドシステムを選択することで解決する方法を説明できますか?@Akshay Sunderwani
user832 '20

142
あなたは問題を修正するのではなく、単にそれらを隠しています。
Caio

4
反応ネイティブプロジェクトのビルドエラーを修正します。ここでの問題を参照してください:github.com/facebook/react-native/issues/20492レガシビルドシステムに切り替えるにはしたくない場合は可能な修正プログラムがあります:github.com/facebook/react-native/issues/...
オイゲンティム2018年

6
これは長期的な修正ではありません。最終的には、レガシービルドシステムはオプションではなくなります。
ポールキング

6
これらの解決策はどれも機能しないため、問題を修正するのではなく、100%隠します。Cocoapodsの既知の問題のようです。github.com/CocoaPods/CocoaPods/issues/7949​​を参照してください。私は、この回避策がもはやオプションではなくなるまでに、それがどういうわけかそれ自体を修正することを望みます。
sudo

170

Xcode-> File-> Workspace Settingsに移動します。 次のようなポップアップが表示されます。

ここに画像の説明を入力してください

ビルドシステムタグから「レガシービルドシステム」を選択します。「完了」を押します

注:-cmd + shift + alt + k」と「派生データ」でプロジェクトをクリアしてください

それが魅力的になるプロジェクトを構築してください:)


私の理解によると、既存のプロジェクトは古いバージョンのswiftとxcodeでサポートされている古いswiftとxcodeで作成されています。そのため、以前に行ったのは、「バンドル設定-> Swiftレガシービルドシステム」で、以前のバージョンを選択しました。
Hardik1344 2018

もともとは「Swift Legacy Build System」にありましたが、コンピューターを再起動すると切り替えられました。これが正しく設定されていると思っても、再確認する価値があります。
EndersJeesh

このソリューションは問題を修正するのではなく、単にそれを隠すだけです。
アーガス

また、ユーザーごとのワークスペース設定を同じに変更してください;)
Wei Shen


114

これも試してみてください。Xcode-> File-> Project Settings-> Build System-> Legacy Build System。


38
この場合、Xcodeはプロジェクトの問題にフラグを立てているため、レガシービルドシステムに戻すと、現時点では非表示になります。Xcodeによるこの種の問題の報告は意図的なものであり、問​​題を修正することが最善です。
リックバラード

2
エラーがCocoaPodsの生成されたプロジェクトにある場合、新しいCocoaPodsバージョンが問題を修正するまで、新しいビルドシステムを無効にします。
Rivera

@RickBallardは理にかなっています、これは正しい修正でしょうか?答えが混在しているようです
rolando

1
この種類のエラーには複数の原因がありますが、その意味について詳しくは、help.apple.com / xcode / mac / 10.0 /#/ dev14a2fd0c0
Rick Ballard

74

Ditto同じ名前の複数のインスタンスを作成するコマンド(でなく)からこれを取得している場合は、'copy files' build phaseを変更する必要がある場合がありProduct Module Nameます。

  1. Xcodeが不満を抱いているターゲットをクリックします
  2. クリック Build Settings
  3. 検索する Product Module Name
  4. 名前を一意の名前に変更します

アプリには監視ターゲットといくつかの通知ターゲットがあるためExtension、モジュール名の最後になどを配置します。

私はもともとここにこの解決策を見つけました:https//forums.developer.apple.com/thread/103913


1
それは少しうまくいきましたが、それからそれはブリッジングファイルで壊れました。
Mohamad Kaakati

5
私の場合、ビルド構成を表示するには、All検索する場所の右側を選択Product Module Nameする必要がありました。
Hodson

56
Xcode 10でも同じ問題が発生しました。Xcode9.4.1では同じプロジェクトが正常に機能していました。したがって、解決策は非常に簡単です。すべてのinfo.plistファイルをターゲットから削除するだけです。すべてのinfo.plistファイルに対してこれを行ってください。ステップ1。info.plistファイルを選択します。2.ファイルインスペクタで、ターゲットメンバーシップのプロジェクトのチェックを外します。次に、プロジェクトを実行します。よろしくお願いします!
キット

12
私にとっては、[Project_Name]>ビルドフェーズ>バンドルリソースのコピーに移動して、そこの重複を削除する必要がありました
user3322509

5
@Bharath info.plistファイルをプロジェクトから削除しないでください。私が述べたように、ターゲットから削除する必要があるだけです。info.plistは削除できません。プロジェクトにとって非常に重要です。
キット

69

私はコアデータを実験していました。簡単なチェックリストプログラムのデータモデルを作成し、NSManagedObjectsを生成しました。プロジェクトをコンパイルすると、次のエラーが発生しました。

error: Multiple commands produce '/Users/myUSerName/Library/Developer/Xcode/DerivedData/myCoreDateExperiment-gzbslaqdwglkzxemijpdqmizgyzc/Build/Intermediates.noindex/ myCoreDateExperiment /Debug-iphonesimulator/ myCoreDateExperiment.build/Objects-normal/x86_64/CheckListItem+CoreDataProperties.o':
1) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files
2) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files

問題は、データモデル(私の場合はCheckList.xcdatamodeld)が[ソースのコンパイル]リストにあったことです。リストから削除すると、プロジェクトはきれいにコンパイルされました。

  1. プロジェクトナビゲーターを開き、プロジェクトを選択します(一番上の最初のエントリ)
  2. [プロジェクトとターゲット]ペインの[ターゲット]でビルドターゲットを選択します
  3. 上部にあるビルドフェーズオプションを選択します
  4. 「ソースのコンパイル」エントリを展開し、データモデル名を探します。「xcdatamodeld」が見つからない場合は検索してください。
  5. コンパイルリストからモデルを削除する
  6. データモデルが[バンドルリソースのコピー]リストに含まれていることを確認します。足りない場合は追加してください。

編集

@WilliamTとして。コメントで説明しているように、コンパイルリストにはxcdatamodeldが必要です。代わりに、xcdatamodeldファイル内のエンティティに移動します。エラーのあるモデルを選択し、左側のパネルを展開して、「Codegen」のフィールドを「Manual / None」に変更します。


36
xcdatamodeldファイルは、実際にはコンパイルソースにあるはずです。Core Dataに関連してこのエラーが表示される場合は、「Create NSManagedObject Subclass」を呼び出したが、エンティティがCodegen = "Class Definition"に設定されている可能性があります。つまり、これらのクラスは自動的に作成され、手動で作成したため、2回存在します。
ウィリアムT.

1
あなたは命の恩人です
-user578386

1
@WilliamT。では、Create NSManaged Object Subclassを呼び出している場合、Codegenの値は何でしょうか?
Kaunteya

2
@Kaunteya各CoreData属性(テーブル)でCodegenを "Manual"に設定するオプションがあります
William T.

1
@WilliamTをフォローしてください。アドバイスしてから、クリーンアップしてビルドします。
PruitIgoe

40

ビルドログを確認しているときに警告に気付きました。

note: Using new build system
note: Planning build
note: Constructing build description
Build system information
warning: The Copy Bundle Resources build phase contains this target's Info.plist file '/Users/<redacted>/Repositories/Whitesmith/optimize-ios/Carthage/Checkouts/WSStatusBarNotification/Miscellaneous/Info.plist'. (in target 'JDStatusBarNotification')

それで、それがあなたのケースであるなら、あなたのターゲットに行ってください:

  1. ビルドフェーズ
  2. バンドルリソースのコピー
  3. を削除しinfo.plistます。

32
info.plistファイルがコピーバンドルリソースに存在せず、同じエラーが引き続き発生する
bunty kumar

コピーバンドルリソースのビルドフェーズから過剰なInfo.plistを削除すると、問題が解決しました。ただし、誤って別のターゲットのInfo.plistが同じプロジェクト内にあるため、バンドルリソースのコピービルドフェーズに追加されたため、警告は異なりました。警告は次のとおりです:「警告:タスクの重複出力ファイル '... MyApp.app/Info.plist':ProcessInfoPlistFile」。そして、元の質問と同じエラーにつながります:「エラー:複数のコマンドが '... MyApp.app/Info.plist'」を生成します。
Martin Polak

私は、問題は「PLIST」よりも一般的だと思いので、ただ単により頻繁に遭遇しているようで、私はそれを削除した後、問題が修正されました-私の場合、それは「LICENSE」ファイルだった
私たちVIR

37

CocoaPodsを使用している場合は、ポッドを分解して再インストールしてみてください。わたしにはできる。

pod deintegrate

pod install


はい、私の問題はポッドパッケージが原因で発生し、これだけで問題が解決しました。感謝
CodeBrew

@Ming Chuありがとう
N. Der

30

これを試してみてください:

Xcodeで、「ファイル」->「プロジェクト/ワークスペース設定」に移動します。

ビルドシステムをレガシービルドシステムに変更します。


2
この場合、Xcodeはプロジェクトの問題にフラグを立てているため、レガシービルドシステムに戻すと、現時点では非表示になります。Xcodeによるこの種の問題の報告は意図的なものであり、問​​題を修正することが最善です。詳細については、help.apple.com / xcode / mac / 10.0 // dev14a2fd0c0を参照してください。
リックバラード

27

エラーメッセージがコアデータファイルを参照している場合は、この回答をお読みください

概要:自動生成と手動生成の両方のCore Data管理対象オブジェクトクラスファイルがある場合があります。

この回答は、エラーの最初の行がFoo + CoreDataProperties.oまたはFoo + CoreDataClass.oファイルを参照している場合に適用されます。例:

error: Multiple commands produce '/Users/me/Library/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/ MyApp /Debug-iphonesimulator/ MyApp.build/Objects-normal/x86_64/Foo+CoreDataProperties.o':

1) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

2) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

根本的な原因は、Build TranscriptのCompile Swift Source Filesセクションを展開することで確認できます。例えば:

<unknown>:0: error: filename "Address+CoreDataClass.swift" used twice: '/Users/myUserName/Projects/Jnky/Foo+CoreDataProperties' and '/Users/jk/myUserName/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/MyApp.build/Debug/MyApp.build/DerivedSources/CoreDataGenerated/Jnky/Foo+CoreDataProperties.swift'

最初に言及したファイルは、プロジェクトディレクトリにソースファイルがあり、プロジェクトナビゲーターでデータモデルを選択し、メニューの[ エディター ] > [ 管理対象オブジェクトサブクラスを作成 ]をクリックして生成したファイルです。この機能はXcode 7で追加されました。

2番目のファイルは同じ名前のファイルですが、Xcodeに埋め込まれていますDerivedData。データファイル()ファイルがターゲットのソースコンパイルビルドフェーズに含まれている場合、このファイルはビルドごとに Xcodeによって自動的に生成され.xcdatamodeldます。この機能はXcode 9で追加されました。Codegenポップアップの設定に応じて、エンティティ/クラスごとに0、1、または2つのファイルが生成されます。データモデルの編集中にエンティティを選択すると、そのポップアップはデータモデルインスペクターに表示されます…

データモデルインスペクターのスクリーンショット

設定は次のとおりです。

  • 手動/なしファイルは生成されません
  • カテゴリー/拡張子 1つのファイル、Foo + CoreDataProperties.mまたは.swiftが生成され、Objective-CカテゴリーまたはSwift拡張子が含まれます。
  • クラス定義同じカテゴリ/拡張ファイルが生成され、さらにクラスの宣言と定義を含むFoo + CoreDataClass.mまたは.swiftが生成されます。

つまり、古いXcodeに慣れている開発者(私のような)が新しいXcodeでプロジェクトを開始すると問題が発生することがわかります。Codegenポップアップの設定によってXcodeが重複ファイルを作成していることに気づかずに、プロジェクトナビゲーターに表示できるファイルを作成するには、Create Managed Object Subclassメニュー項目を使用する必要があると考えています。 「巧妙に」は、プロジェクトナビゲーターには表示されません。これは、開発者が開発者を読んでヘッダーのコメントに耳を傾けることを信頼しないためです。

解決策1-古い方法を使用する

1つの設定だけで、データモデルのすべての自動Codegenを無効にすることができます。

  • 問題のターゲットのビルドフェーズを開きます(Project Navigatorでプロジェクトを選択し、表示されるTARGETSのリストで問題のターゲットを選択して、[ ビルドフェーズ ]タブをクリックします)。
  • [ ソースコンパイル]エントリを展開し、問題のあるデータモデル(.xcdatamodeldファイル)を見つけます。
  • コンパイルリストから削除してください
  • データモデルが[ バンドルリソースコピー]リストに含まれていることを確認します。

ソリューション2-初心者のためのコアデータマジック

ここで、あなたは新しい方法ですべてに入ります。

  • そのコンパイルソースのデータモデルはそのままにしておきます。
  • データモデルの各エンティティインスペクターで、CodegenClass Definitionに設定します。
  • プロジェクトナビゲータでは、削除して、任意のゴミ箱のFoo + CoreDataClassのすべてのファイルを、名前の変更はFoo + CoreDataProperties.mまたは.swiftような何かにファイルをフー+ MyProperties
  • Foo + MyProperties.mまたは.swiftファイルで、Xcodeによって生成されたプロパティがある場合、これらのプロパティはCodegenによって作成された隠しファイルにあるため、削除します。

このソリューションでは、クラス定義は各ビルドのデータモデルから自動的に生成されます。あなたもそれらを見ることができません。それはコアデータのマジックであり、初心者には便利でシンプルです。

ソリューション3-ほとんどの実際のアプリ

しかし、管理されていないプロパティを本当に追加したい場合は、ソリューション2は役に立ちません。(Objective-Cでは、プロパティをカテゴリに追加できません。Swiftでは、保存されたプロパティを拡張機能に追加できません。)したがって、ほとんどの実際のアプリでは、ソリューション1と2の中間に行くことをお勧めします。

  • コンパイルソースのリストにデータモデルを残す
  • データモデルの各エンティティインスペクターで、CodegenCategory / Extensionに設定します。
  • プロジェクトナビゲータで、削除し、任意のゴミ箱のFoo + CoreDataClass.mまたは.swiftファイルを、そして、将来の混乱を軽減するために、任意の名前の変更はFoo + CoreDataProperties.mまたは.swift多分ちょうどにファイルをFoo.m.swift
  • Foo.mまたは.swiftファイルにクラス定義が含まれていることを確認してください。クラス定義には、独自の非管理プロパティを追加できます。

(Positronによる回答への謝辞。ここでの私の回答は、Positronの回答(私のソリューション1)が機能する理由を説明し、ソリューション2とソリューション3を追加します。)


これでうまくいきました。あなたは素晴らしいです!
Srujan Simha

いい答えだ。追加したいのは、ここからのコメントからCodegenをManual / Noneに修正した後、[Product]> [Clean Build Folder]を使用して重複する隠しファイルをクリアできることです
間違いなく

21

私の問題を解決した1つのオプションは、ビルドシステムをレガシービルドシステムに変更することです。Xcode 10以降では、次の手順に従ってください。

ここで私は問題とその解決策に関する詳細な記事を書きました。Xcodeエラー:複数のコマンドが生成する

ここに画像の説明を入力してください

ここに画像の説明を入力してください


1
私の命を救った。完璧に働きました。
レイナルド

2
この答えは、React Nativeを使用してXcodeで発生していた12の問題のように、単独で修正されました。ありがとうございました!
Chris

19

私の場合、PDFGeneratorがinfo.plistファイルを生成していたので、それを削除しました。

ここに画像の説明を入力してください


18

同じ問題がありました。メインアプリにヘルパーアプリがもう1つあり、これをリソースにコピーしました。私の場合:-

1)ターゲット-> 2)ビルドフェーズ2)ファイルのコピー(nアイテム)3)ファイルのコピーを削除します。

Xcode 10.0で自動的にコピーされるヘルパーアプリ。

ここに画像の説明を入力してください


3
ファイルのコピー+バンドルリソースのコピーの削除が役立ちました。
Oleksandr

これは私にわずかな変更を加えてうまくいきました-私の場合、ファイルのコピー手順に複数のファイルがあり、どういうわけか同じファイル名がバンドルに複数回/ 2回コピーされました-エラーが発生しました:1行を削除するには行を強調表示する必要があります/ filterエラーの名前を不満にし、ファイル全体のコピー手順を削除するのではなく、マイナス記号(常に一番下の行にある)で1行を削除します。
AztecWarrior_25

16

ここで提案された解決策はどれも私にとってうまくいきませんでした。これは特にCocoaPodsによるものでした。以前はCocoapods 1.3.1を使用していました。1.5.3にアップグレードしただけでは、問題はすぐには解決しませんでした。

私が従った手順は次のとおりです。

  1. Podfile.lockを削除する
  2. ポッドディレクトリを削除
  3. 派生データを削除して削除
  4. Xcodeを終了
  5. CocoaPodsを1.5.3に更新します
  6. 走る pod install
  7. ワークスペースを開いてビルド

5
CocoaPodsを1.5.3(sudo gem install cocoapods)に更新して実行(pod install)するだけで、私はそれを機能させることができました。ありがとう!
mikemike396

私は上記の推奨事項をいくつか実行しましたが、これが私のために解決した唯一のものでした。ありがとう
Almeida

これも私のために解決しました。実際に問題を処理するため、レガシービルドソリューションよりも優れていると思います。
MateusK

1
これでうまくinstall! 'cocoapods', :disable_input_output_paths => trueいきましたが、ポッドファイルの先頭に追加する必要もありました。また、ポッドを更新したくない場合は、podfile.lockを削除しないでください。すべてのポッドが現在のバージョンでインストールされます。
DoesData

11

始める前に、私のプロジェクトでは依存関係マネージャーとしてCarthageを使用していることに注意してください。

ここでの既存の回答のどれも私の問題を解決しませんでした。私にとって問題を解決したのは次のとおりです。

まず、ビルドエラーが特定のフレームワークを指摘していることに気付きました。次に、そのフレームワークのApp Target> Build Phasesをフィルタリングしました。そのフレームワークは、「Link Binary With Libraries」と「Embed Frameworks」の両方に存在することに気付きました。「Embed Frameworks」にリストされているフレームワークはいずれもCarthageによって管理されているものではないことに注意して、「Embed Frameworks」から問題のフレームワークを削除しました。その後、プロジェクトを再構築しましたが、問題のフレームワークによって有効にされた機能を含め、すべてが正常に機能します。


1
PODSを使用しました。Embed Frameworksからすべてを削除することができました。エラーなしでクリーンに再構築しました。レガシーソリューションも機能しますが、目前の問題は解決しません(これを読んでいる人にとって)。私はxcode 10.2、cocoapods-1.6.1を使用しています。
Nadine Rose、

1
私はカーセージを使用していますが、これで修正されました!
Devin B

CocoaPodsも使用しました。フレームワークは開発ポッドとして接続されます。「Embed Frameworks」は空であり、この問題が引き続き発生します
Luten

11

手順:

  1. Xcodeファイルに移動
  2. クリックしてWorkSpace設定
  3. ビルドシステムレガシービルドシステムとして選択

4
この場合、Xcodeはプロジェクトの問題にフラグを立てているため、レガシービルドシステムに戻すと、現時点では非表示になります。Xcodeによるこの種の問題の報告は意図的なものであり、問​​題を修正することが最善です。詳細については、help.apple.com / xcode / mac / 10.0 // dev14a2fd0c0を参照してください。
リックバラード

これでうまくいきます。製品名を変更しても変わりません。私の製品が半分の目的Cコードと迅速なコードと混在しているため。私の問題は「複数のコマンドがswiftmoduleを生成する」です
wzhang84 '25年

10

このオプションをすべて試してみてくださいこの3つのオプションのどれでもうまくいくでしょう

Option 1: Remove all files from

ターゲット>>ビルドフェーズ>>ソースのコンパイル

ターゲット>>ビルドフェーズ>>バンドルリソースのコピー

Option 2: Change the build system

Xcode-> File-> Project Settings-> Build System-> Legacy Build System

Option 3: remove and update existing pod

ポッドキャッシュクリーンPromisesObjC
ポッドキャッシュクリーンPromisesSwift
cd [your_project_dir]
rm -rf
Pods / rm Podfile.lock
pod update

I hope this will help you, Happy coding :-)

-1。いいえ、「確実に」機能しません。コンパイルソースとコピーバンドルリソースを削除するポイントは何ですか?プロジェクトは、コードとリソースをコンパイルしないと機能しません。
Luten

9

したがって、私が抱えていた問題は、プロジェクトの設定->ビルドフェーズ->ターゲットのバンドルリソースのコピーに誤ってInfo.plistを含めたことです。


Xcode 10でtflite_camera_exampleを実行しようとしたときにこのエラーが発生したため、これはまさに私にとっても解決策でした
zai chang

9

この問題は、SDKのファブリックスイートの2番目の部分をアプリに追加した後に発生しました。

実際に起こったことは、GoogleUtiliesフレームワークがポッドプロジェクトに2回追加されたことです。

GoogleUtilities.frameworkの2つのエントリ

これはXcode 10より前のバージョンでは問題ありませんでしたが、ファイルに対して2つのアクション(この場合はコピーアクション)がある場合、Xcode 10はメッセージを表示します。

2番目のフレームワークを削除しても安全です。


私も同じですが、Carthageを使用してすべての.frameworksをライブラリセクションプロジェクトにドラッグします
Ronaldo Albertini

この@Damoを修正しましたか
Harikarthick K

私はこの問題に直面しています。レガシーを変更せずにこれを修正する方法を教えてください
Harikarthick K

9

ここに別の実用的なソリューションがあります:(カスタムポッドを使用している場合)

  • スクリーンショットのハイライトとしてサイドバーから「ポッド」を選択します。
  • ビルドフェーズをクリックします。「ヘッダー」セクションを展開します。パブリック、プライベート、プロジェクトの3つのオプションがあります
  • 「公開」を展開し、重複ファイルがあることを確認します。それを除く。できました!

ここに画像の説明を入力してください


この回答は、(カスタム)ポッドが問題を引き起こしている場合の解決策とも見なされます。
MkaysWork 2018年

また、ここから* .plistファイルを削除できます。カスタムポッドで動作するようです。
Amit Ahire

8

私はたくさん持っていました Multiple commands produce警告ました-1つのターゲットでのinfo.plistの複製に限定されません。ローカライズされたリソースと文字列ファイル、ヘッダーなどを含みます

解決策:ターゲットメンバーシップの重複をすべて削除します。


メインアプリのinfoplist.stringsファイルと同じディレクトリにコピーされている独自のinfoplist.stringsファイルを含むウォッチターゲットがあったため、このエラーが発生しました。建設時に両方とも同じ場所に配置されます。
Lyck

7

2つの異なるターゲットに同じ名前のファイルがあると、この問題が発生しました。何らかの理由で、これらのファイルの1つが両方のターゲットの一部でした。つまり、基本的に2つのファイルがありました。そして、これらのファイルは両方とも1つのターゲットに属していました。

ターゲットはターゲットごとに1つのファイル名しか持てないので、メインターゲットに関連していないファイルのターゲットメンバーボックスをオフにするだけで問題が解決しました。


7

CarthageとXcode 10を使用しています。

私のソリューションは->プロジェクト->ターゲット->一般->

Carthageで追加されたフレームワークを「組み込みバイナリ」から削除します

通常、ビルドフェーズでスクリプトを追加して、アプリストアのアーキテクチャを削除する必要があります。

Xcode 10では、スクリプトは常に呼び出されるようです。そのため、フレームワークが適切な場所にコピーされ、[全般]タブにフレームワークを追加する必要はありません。

注:設定されていない場合->ビルド設定->検索パス->フレームワーク検索パス-> Carthageで追加されたフレームワークuへのパスを設定します。「$(PROJECT_DIR)/ Carthage / Build / iOS」


7

このエラーは、CodegenがManual / Noneに設定されていないCoreDataモデルの自動生成後に生成される可能性があることに注意してください。

Xcode 10でこれを修正するには、xcdatamodeIdファイルをダブルクリックして各エンティティを選択し、データモデルインスペクターの[クラス]でCodegenをManual / Noneに設定します。


はい!また、「クリーンビルドフォルダー」を実行します。
ダーク

6

同様の問題がありましたが、.swiftdocファイルに関するものでした。

プロジェクトに拡張機能と単体テストのターゲットがあります。また、アプリケーションと同じ「製品モジュール名」(ビルド設定のPRODUCT_MODULE_NAME)がありました。名前を作成した後、固有の問題はなくなりました。


6

Xcode 10への移行のようなエラー

error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':

次のように解決できます:

に移動しXcode->File->Workspace/Project Settings-> Build System -> Legacy Build Systemます。


2
この場合、Xcodeはプロジェクトの問題にフラグを立てているため、レガシービルドシステムに戻すと、現時点では非表示になります。Xcodeによるこの種の問題の報告は意図的なものであり、問​​題を修正することが最善です。詳細については、help.apple.com / xcode / mac / 10.0 // dev14a2fd0c0を参照してください。
リックバラード

これは私のためにそれをやった、あなたはサーは天才です
samouray 18/12/18

6

プロジェクトビルドフェーズに移動し、コンパイルソースからinfo.plistを削除します。その問題が削除され、プロジェクトが再びアクティブになります。

ここに画像の説明を入力してください


6

CocoaPodsの1つが古臭く、問題を引き起こしました。ポッドが更新されましたが、正常に動作しました。

それはLivePerson SDKだったと思います


私にとっては、「ポッドインストール」を実行するだけでした
Pnar Sbi Wer

6

私の問題は、Mojaveで実行されているXcode 10と、XCode 10に更新する前に書いた単体テストを実行しようとしたときでした。

私の場合、TestTargetターゲットの実行中にこの問題が発生しました。解決するには、私は次のことをしなければなりませんでした:

  • ターゲットの依存関係の1つを削除します(TestTarget > build phases > Target Dependencies

私の他に2つのターゲットがあったので TestTargetどちらも同じスクリプトを実行していて、ある時点でファイルを作成/コピーしていたためです。

そして、それはここでのXcode 10のビルドシステムリリースノートで 言及されたものと矛盾しました

ビルド内の個々のファイルが複数のビルドコマンドによって生成されると、エラーになります。たとえば、2つのターゲットがそれぞれシェルスクリプトフェーズから同じ出力ファイルを宣言する場合、出力ファイルの宣言を1つのターゲットに分解します。

Xcode 10.1から10.2に更新した後の新しいUPDATE

Xcode 10.2にアップデートした後、同様の問題が再び現れました。プロジェクトごとに複数のターゲットがあります:Target1Target2、私はこの問題を次の方法で解決しました:

  • に移動しEdit Scheme > Build
  • ビルドからターゲットの1つを削除:インポート済みであることを知っているので、Target1下のチェックボックスをオフにしますTestTarget2Target1

また、ここにも注意してください。Target2チェックボックスは、Test


6
error: Multiple commands produce '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings':
1) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-demo-master/TildeskWidget/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'
2) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-sdk-master 2/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'

この問題を解消するには、2つの異なる解決策があります。

解決策1

ご覧のとおり、同じエラーが発生しました。私の場合、TildeskWidgetChat21Coreフォルダの追加のコピーがありましまた、単にエラーを読み取ることができます..だから可能な解決策の一つが問題を作成していた..Thisフォルダ全くとプロジェクトから参照されている余分なコピーがあるかどうかを確認してください。

解決策2

別のプロジェクトで同じ種類の問題に直面したときに見つけた別の簡単な解決策。今回は別のソリューションを適用する必要がありました。

  • pod deintegrate プロジェクトから。
  • ワークスペースファイルとpod.lockファイルをプロジェクトフォルダから削除します。
  • もう一度pod install 、プロジェクトをビルドしてみてください。

これがうまくいくことを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.