error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':
1) Target 'OptimalLive' has copy command from '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' to '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'
2) Target 'OptimalLive' has copy command from '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masonry/Info.plist' to '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'
3) Target 'OptimalLive' has process command with input '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist'
xcode9でコードを実行しても機能しますが、Xcode10ではエラーが発生します。
私はこのビルドエラーの解決策を見つけました、それを修正するためにXcode 10ビルドシステムに関して同じ問題を抱えている誰かのために、以下のステップに従ってください:
- Xcodeで、ファイル - >プロジェクト/ワークスペースの設定に行きます。
- ビルドシステムをレガシビルドシステムに変更します。
新しいビルドシステムを使用したい場合は、トラブルシューティングのヘルプ このApple Xcodeのヘルプページ から入手できます).
お役に立てれば!
Xcode - >ファイル - >プロジェクト設定 - >ビルドシステム - >レガシービルドシステム。
これをDitto
コマンドから取得して、同じ名前('copy files' build phase
ではない)のインスタンスを複数作成する場合は、Product Module Name
を変更する必要があります。
Build Settings
をクリックProduct Module Name
私たちのアプリにはwatchターゲットといくつかのnotificationターゲットがあるので、私はExtension
のようなものをモジュール名の最後に置きます。
私はもともとここにこの解決策を見つけた: https://forums.developer.Apple.com/thread/103913
ビルドログを確認していると、警告が出ました。
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')
それで、それがあなたのケースであるならば、あなたのターゲットに行くだけです:
info.plist
を削除してください。これを試してみてください
Xcodeで、ファイル - >プロジェクト/ワークスペースの設定に行きます。
ビルドシステムをレガシビルドシステムに変更します。
私はCore Dataを試していました。簡単なチェックリストプログラムのデータモデルを構築し、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)が[ソースのコンパイル]リストに含まれていたことです。リストから削除すると、プロジェクトはきれいにコンパイルされました。
CocoaPodを使用している場合は、Podを分解して再度インストールしてみてください。わたしにはできる。
pod deintegrate
pod install
このオプションをすべて試してくださいこの3つのオプションのいずれかが確実にあなたのために働くでしょう
Option 1: Remove all files from
ターゲット>>ビルドフェーズ>>ソースのコンパイル
ターゲット>>ビルドフェーズ>>バンドルリソースのコピー
Option 2: Change the build system
Xcode - >ファイル - >プロジェクト設定 - >ビルドシステム - >レガシビルドシステム
Option 3: remove and update existing pod
ポッドキャッシュクリーンPromisesObjC
ポッドキャッシュのクリーンPromisesSwift
cd [your_project_dir]
rm -rf Pods /
rm Podfile.lock
ポッドアップデート
I hope this will help you, Happy coding :-)
始める前に、私のプロジェクトではカルタゴを依存関係マネージャとして利用していることに注意してください。
ここにある既存の答えのどれも私の問題を解決しませんでした。私にとってこの問題を解決したのは次のとおりです。
まず、ビルドエラーが特に1つのフレームワークを指摘していることに気付きました。次に、そのフレームワーク用にApp Target> Build Phasesをフィルタリングしました。私は、そのフレームワークが "Link Binary With Libraries"と "Embed Frameworks"の両方に存在することに気づきました。 「埋め込みフレームワーク」の下にリストされているフレームワークのどれもカルタゴによって管理されていないことに注目して、私は問題のフレームワークを「埋め込みフレームワーク」から削除した。それから私は自分のプロジェクトを再構築し、問題のフレームワークによって可能にされた機能性を含めてすべてがうまく機能します。
ここで提案された解決策のどれも私のために働きませんでした。これは特にCocoaPodsによるものです。私は以前Cocoapods 1.3.1を使っていました。 1.5.3にアップグレードしただけでは問題はすぐに解決しませんでした。
私が従った手順は次のとおりです。
pod install
を実行ステップ:
だから私が抱えていた問題は、私が誤ってInfo.plistをプロジェクトの設定 - > Build Phases - > Copy Bundle Resourcesに追加してしまったことです。
私はたくさんのMultiple commands produce
警告を出しました - 一つのターゲットのinfo.plistの重複に限定されません。ローカライズされたリソースと文字列ファイル、ヘッダーなどを含みます.
解決策:ターゲットメンバーシップの重複をすべて削除します。
2つの異なるターゲットに同じ名前のファイルがあると、この問題が発生しました。何らかの理由でこれらのファイルのうちの1つが両方のターゲットの一部になっていました。だから基本的に私は二つのファイルを持っていた。そしてこれらのファイルは両方とも1つのターゲットに属していました。
ターゲットはターゲットごとに1つのファイル名しか持てないことが理にかなっているので、メインターゲットに関連していないファイルのターゲットメンバーボックスのチェックを外すだけで問題は解決します。
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
に行きます。
私のCocoaPodの1つが発声されて問題を引き起こしました。ポッドアップデートをしました、そして、それはうまくいきました。
私はそれがLivePerson SDKだったかもしれないと思います
私はカルタゴとXcode 10を使っています。
私の解決策は - >プロジェクト - >ターゲット - >一般 - >
「埋め込みバイナリ」からカルタゴで追加されたフレームワークを削除する
通常、App Storeのアーキテクチャを削除するには、ビルドフェーズにスクリプトを追加する必要があります。
Xcode 10では、スクリプトは常に呼び出されるようです。そのため、フレームワークが正しい場所にコピーされるので、それらを[General]タブに追加する必要はありません。
注:設定しない場合 - > [ビルド設定] - > [検索パス] - > [フレームワーク検索パス] - > Carthageで追加したフレームワークへのパスを設定します。 "$(PROJECT_DIR)/カルタゴ/ビルド/ iOS"
これは基本的にInfo.plist
という名前のファイルが複数あることを意味します。 通常は問題ありませんが、誤ってあなたのファイルが同じターゲットメンバーシップに設定されています。そのため、修正は次のとおりです。各ファイルをそれぞれクリックし、右側のターゲットメンバーシップを確認し、それらが重複していないことを確認します。
同様の問題がありましたが、.swiftdocファイルがあります。
プロジェクトに拡張機能と単体テストのターゲットがあります。また、それらはアプリケーションと同じ「製品モジュール名」(ビルド設定のPRODUCT_MODULE_NAME)を持っていました。ユニークな問題がなくなった名前を作った後。
検索 & 削除 複数のファイルが複数のコマンドから作成されている。
ここで、余分なInfo.plist
ファイルを削除する必要があります(私の場合はContents.json
でした)。
error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'
私の問題はXcode 10にアップデートする前に私が書いたユニットテストを実行しようとしている間にMojaveで実行されているXcode 10にありました。
私の場合は、 "TestTarget"ターゲットを実行中にこの問題が発生しました。解決するには、 "TestTarget"以外に2つのターゲットがあり、どちらも同じスクリプトを実行して特定の時点でファイルを作成/コピーしていたため、ターゲットの依存関係の1つを削除します。
そしてそれは Xcode 10のビルドシステムリリースノート here に書かれていることと衝突しました。
ビルド内の個々のファイルが複数のビルドコマンドによって生成されるのはエラーです。たとえば、2つのターゲットがそれぞれシェルスクリプトフェーズから同じ出力ファイルを宣言している場合、出力ファイルの宣言を単一のターゲットにまとめます。
Plistについても同じ問題がありました。そのコピーが2つあり、1つは空で、もう1つはローカライズされたリソースフォルダーにありました。問題。
エラーをチェックすると、1)行と2)行には異なるパスがあります。このファイルは、コピー段階で2回定義されている可能性があります。
ターゲットプロパティ、ビルドフェーズ、バンドルリソースのコピーを確認し、重複しているinfo.plistを探します。どのパスが正しくないかを把握して削除します。 (おそらくファイルシステムからも削除したいでしょう。)
私の場合は、Info.plistファイルが私のCocoapodから取り出されました。それを削除して問題を解決しました。
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'
見ての通り、私は同じエラーを受けていました..私の場合、 " TildeskWidget "フォルダに " Chat21Core "フォルダの余分なコピーがありました。したがって、考えられる解決策の1つは、単にエラー全体を読んで、プロジェクトから参照されている余分なコピーがあるかどうかを調べることです。
同じファイルを複数コピーしました。簡単に言うと、コピーを1つ残して、残りをすべて削除します。クリーンビルドし、ソートして発行します。
私の場合、奪われたデータとビルド設定をクリーニングし(この順序で)、Xcodeとシミュレータを再起動するのが助けになりました。
ソリューション->ターゲットを開く->ビルドフェーズ>バンドルリソースのコピーを実行しようとしましたが、再び表示されました。剥奪されたデータのクリーニングが役立ちました。エラーでは、重複がどこにあるかが示されます。私の場合、それはアプリのバンドルにあり、データが奪われていると言いました。
私にとっては、同じファイルをバンドルリソースに2回含めることに問題がありました。どのようにしてそれが起こったのかわからないが、私はそれらのうちの一つを取り除き、それは新しいビルドシステムでうまくコンパイルされた。
それでinfo.plistとは何の関係もないのでここで正しい答えを見つけられなかった人のためにそうそう….
SPMパッケージだけで、手動でxcodeproj
sを職場にドラッグして、CocoaPodやCarthageを使わずにmacOSアプリを開発しているときに、私はこの問題に遭遇しました。
1つの依存関係のみを使用していた場合(内部からSwift-NIOを使用していた場合)、すべて問題ありませんでしたが、サブデップをオーバーラップする依存関係をもう1つ追加すると、この厄介な問題が発生しました。
解決策は、すべての主要な依存関係を別々にコンパイルしようとすることです(それぞれの.build
フォルダー内に存在しないチェックアウトフォルダーが原因で失敗します。これはおそらくあなたのpkgsを編集モード(Swift package edit YourPkg ...
)にするために起こります。
あなたのpkgsを単にunedit
し、すべての依存関係をうまくコンパイルするように強制します。その後、メインターゲット内のリンクされたバイナリが重複していないことを確認する必要があります(本当に必要なのかわからないが、念のため)。
その後、すべてうまくいくはずです:)
私たちは何ヶ月もかけて、この問題を私たちのいくつかの子プロジェクトで調べました。 AVAILABLE_PLATFORMS
が"appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator"
に設定されているため、複数のプラットフォームが構築されていたため、「複数のコマンドでエラーが発生しました」という結果になりました。たとえば、 "Foo"プラットフォームはiOSとTVOSの両方のために構築されていたので、複数の構築コマンドがFoo.framework
ファイルを作成していました。
設定次第
AVAILABLE_PLATFORMS = iphoneos iphonesimulator
私たちのルートのxcconfig
ファイルでは、この問題はすべての子プロジェクトを取り除きました。
実行する
xcodebuild -project FitbitMobile.xcodeproj -target "FitbitMobile" -showBuildSettings > BuildSettings.txt
出力が期待通りに設定されているか確認してください。あなたがiOSアプリで、tvOS用に構築しているのなら、あなたはあなたの設定を更新したいでしょう。
私のProjectName.xcodeproj
には、同じ名前のファイルへの有効な参照と無効な参照がありました。プロジェクトナビゲータで同じファイル名、1つのファイル名が赤だった、もう1つが大丈夫です。無効な参照用のもの(赤いもの)を取り除き、問題を解決しました。
私の場合(私はカルタゴを使っています)
error: Multiple commands produce
1) Target *** has copy command from
2) That command depends on command in Target ***: script phase “Run Carthage Script”
埋め込みフレームワーク および カルタゴスクリプトの実行 = Build Phases構成のフェーズの両方にフレームワークをインポートしたために発生した
これら2つのフェーズはフレームワークを派生データにコピーするので、Xcodeは重複したファイルを見て、これらのエラーを警告付きで表示します。
ignoring duplicated output file: (in target ***)
Embeded frameworkのフェーズから重複したフレームワークを削除した後、すべてが正しく機能しています。
React Native、特にlibyoga.a
でこのエラーが発生した場合は、 this Githubのコメントをチェックしてください。
エラーの問題が.app /(.app/Info.plistではない)の場合は、こちらの回答を参照してください。 xcode 10エラー:複数のコマンドが生成されます - ネイティブに対応します
私の場合、GoogleService-Info.plist
ファイルをFirebaseプロジェクトに2回失望させて追加しました。
最初に追加したGoogleService-Info.plist
を削除し、問題を解決しました。
私の場合は、他のプロジェクトからファイルをインポートし、2つの場所で同じクラスを使用しました。
私がエラーをコピーしたとき、それはもっと多くのテキスト情報をコピーすることがわかった、そして私がダンプを読み通すとき、私は関連する行に来た:
:0:エラー:ファイル名 "EventNode.Swift"が2回使われました:
場所が続いていたし、私は問題を排除することができました。
その過程で、 'Copy Bundle Resources'に何が必要かを見つけました。
アプリが複数の.app
ファイルに関連するエラーを生成している場合は、「Copy bundle Resources」から.plist
ファイルを削除してください/ うまくいきません。
エラーが.appファイルと関連がある場合は、以下の手順に従ってください。
ターゲットを選択してください。
Build Phases
タブに行きます。
Output Files
にリストされている項目を削除しますLinked Frameworks and Libraries
のGeneral
タブに足りないライブラリを追加してください。コードが正常にコンパイルされるまで、これらのライブラリ(Xcodeがコンパイルエラーを通す)をLinked Frameworks and Libraries
に追加し続けます。
お役に立てれば。
私の場合、問題はpodfileから来ています。 add my testをpodfileに投影する必要があります。
target 'MyApp' do
pod 'Firebase'
target 'MyAppTests' do
inherit! :search_paths
pod 'Firebase'
end
end
その後、実行する必要があります。
pod update
Cocoapodsによって管理されている依存関係プロジェクトの場合、情報源からinfo.plistを除外するためのローカルpodspecを提供することで問題を解決しました。例としてgodzippaを取りなさい
ポッドファイル
pod 'Godzippa', :podspec => "venders/godzippa.podspec"
ベンダー/ godzippa.podspec
s.source_files = 'Sources/*.{h,m}'
Swiftヘッダーのインポートで名前が同じであることを信頼している人のためのものです。 (例:ヘッダファイル名:#import "MyApp-Swift.h"
):
このヘッダファイルの名前は実際には${Swift_MODULE_NAME}-Swift.h
によって決定されます。ここでSwift_MODULE_NAME
はデフォルト値としてPRODUCT_MODULE_NAME
を使用します。
さらに、プロジェクト全体のビルド設定として、Swift_OBJC_INTERFACE_HEADER_NAME
"Objective-C Generated Interfaceヘッダー名"があり、デフォルト値は${Swift_MODULE_NAME}-Swift.h
です。この値をMyApp-Swift.h
に変更することで、私たちのアグリゲートビルド内のすべてのターゲットは同じヘッダ名を共有することができ、それらからPRODUCT_MODULE_NAME
値を変更することができました。
私の場合は、ビルドアーカイブエラーとXcode10
-1:複数のコマンドが '/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_carday_app/IntermediateBuildFiles.Product.Plaid.PATH.PLEPIDATEDATEDATEDATEPATHIDATEDATEDATEDATEDATEDATEDATEPIDATEPIDATEDATEDATEDATEPIDATEPIDATEDYPIDATEPATHIDLATEPATHIDLATEPATHIDLATEPATHIDPATHIDLATEPATHIDLYPATHID:):).PPPIDLIDPATHIDLAYPATHIDLATEPLEATEPATHIDLATEPATH:/ .PROPIDATELIDATEPATHIDLATEPATH:/ .PROPIDLIDATELIDPATHID:).PP.PP.PP.PP.PP。 1)ターゲット 'yoga'には '/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_carday_installedFactory/ProductPhoneInstalledFactory/ProductPhoneInstalledFactory.PhildAndPlaid/ProductPlainLinePhinePhildAndPhildAndPhildAndPhildAndPhildAndPhildAndPhildAndPhildAndPhildAndPhinePhinePhinePhinePhinePhinePhinePhid "の順に入力します。 2)ターゲット 'yoga'には '/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediate/AppLineDirectoryのインストール/インストールされた場所/ Recorder_ID_ActiveX_installed_ID_ActiveX_Interprise_Cheduled_Chedule_IntermedyDirectory_Command_IDLineChild_Interface_Chedule_Directory_Command_IDLineChinePhineDirectory/Card.Index.PPの2つのコマンドがあります。 .a '
Podfileに以下のようなものがあるはずです。
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == "React"
target.remove_from_project
end
if target.name == "yoga"
target.remove_from_project
end
end
end
そしてpod install
を実行します
私の場合は、私のGoogleService-info.plist
ファイルが、私のメインアプリと共有拡張プロジェクトの両方に含まれているので、複数コピーしています。
解決策は、このファイルを拡張プロジェクトから除外することです( [ファイルインスペクタ] [サイド]ウィンドウのビューで[Target]からチェックを外します)。私はLegacy Build Systemに切り替えるオプションが嫌いなので(これも私のために働いています)。
私の場合、2つの異なる静的ライブラリに対して同じカスタム パブリックヘッダフォルダパス を使用しました。ひとつはメインアプリ用、もうひとつは時計アプリ用でした。時計アプリのパスを変更したので、すべてうまくいった。
実際にはレガシービルドシステムを使用できますが、スピーディなビルド時間は得られません。たとえば、XCode10でデフォルトになった新しいビルドシステム機能は得られません最新のビルド機能の取得https://developer.Apple.com/documentation/xcode_release_notes/xcode_10_release_notes/build_system_release_notes_for_xcode_1