it-swarm.com.de

Xcode 10-Fehler: Mehrere Befehle werden erzeugt

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'

das Ausführen des Codes in Xcode9 funktioniert, führt jedoch zu einem Fehler in Xcode10.

354
make

Wenn Sie dies über den Befehl Ditto erhalten und mehrere Instanzen mit demselben Namen erstellen (NICHT den 'copy files' build phase), müssen Sie möglicherweise den Product Module Name ändern.

  1. Klicken Sie auf Ihre Ziele, über die sich Xcode beschwert
  2. Klicken Sie auf Build Settings
  3. Suche nach Product Module Name
  4. Ändern Sie den Namen in etwas Einzigartiges

Wir haben ein Überwachungsziel und einige Benachrichtigungsziele in unserer App. Ich füge also Dinge wie Extension am Ende des Modulnamens ein.

Ich habe diese Lösung ursprünglich hier gefunden: https://forums.developer.Apple.com/thread/103913

52
u2Fan

Das Problem kann auf mehrere Plist-Dateien oder andere Dateien in

Lösung -> Offenes Ziel -> Erstellungsphasen> Bundle-Ressourcen kopieren und entfernen Sie info.plist von dort.

 enter image description here

Hinweis: Wenn Sie auch eine Uhren-App entwickelt haben, müssen Sie auch die Plist von der Uhr und der Erweiterungsuhr entfernen.

619
Alok

Ich habe die Lösung für diesen Build-Fehler gefunden. Für alle anderen Benutzer, die das gleiche Problem mit Xcode 10 Build-System haben, gehen Sie folgendermaßen vor, um das Problem zu beheben:

  1. Gehen Sie in Xcode zu File-> Project/Workspace-Einstellungen.
  2. Ändern Sie das Buildsystem in das Legacy Build-System.

 enter image description here Das Build-Problem wird mit dem neuen Xcode 10 behoben.

Wenn Sie mit dem neuen Build-System arbeiten möchten, finden Sie die Hilfe zur Fehlerbehebung auf dieser Apple Xcode-Hilfeseite .

Hoffe das hilft!

346

Gehe zu Xcode -> Datei -> Arbeitsbereich-Einstellungen. Sie werden ein Popup wie finden.

 enter image description here

Wählen Sie "Legacy Build System" aus dem Build System-Tag aus Drücken Sie auf "Done". 

Hinweis: - Stellen Sie sicher, dass Sie Ihr Projekt mit "cmd + shift + alt + k" und "Abgeleitete Daten"

Bauen Sie Ihr Projekt auf, es wird Charme haben :)

134
Hardik1344

Probieren Sie dies auch aus . Xcode-> Datei-> Projekteinstellungen-> Build System -> Legacy Build System.

Bei der Überprüfung des Build-Protokolls ist eine Warnung aufgetreten:

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')

Wenn dies der Fall ist, gehen Sie einfach zu Ihrem Ziel:

  1. Baue Phasen
  2. Bündelressource kopieren
  3. info.plist entfernen.
31
AndrewSas

Probieren Sie es aus:

Gehen Sie in Xcode zu File-> Project/Workspace-Einstellungen.

Ändern Sie das Buildsystem in das Legacy Build-System.

25
Akash Patel

Ich habe mit Core Data experimentiert. Ich habe ein Datenmodell für ein einfaches Checklistenprogramm erstellt und die NSManagedObjects generiert. Beim Kompilieren des Projekts habe ich folgende Fehlermeldung erhalten: 

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

Das Problem war das Datenmodell (CheckList.xcdatamodeld in meinem Fall) in der Liste "Compile Sources". Das Projekt wurde sauber kompiliert, als ich es aus der Liste entfernte. 

  1. Öffnen Sie den Projektnavigator und wählen Sie das Projekt aus (erster Eintrag oben)
  2. Wählen Sie Ihr Build-Ziel unter "Ziele" im Bereich "Projekte und Ziele" aus
  3. Wählen Sie oben im Menü die Option Build-Phasen aus
  4. Erweitern Sie den Eintrag "Compile Sources" und suchen Sie nach dem Namen Ihres Datenmodells. Suchen Sie nach "xcdatamodeld", wenn Sie Probleme haben, es zu finden. 
  5. Löschen Sie das Modell aus der Kompilierliste
  6. Stellen Sie sicher, dass das Datenmodell in der Liste "Ressourcenpakete kopieren" enthalten ist. Fügen Sie es hinzu, wenn es fehlt. 
21
Positron

Wenn Sie CocoaPods verwenden, können Sie versuchen, die Pods zu integrieren und erneut zu installieren. Für mich geht das.

pod deintegrate

pod install

18
Ming Chu

Ich hatte das gleiche Problem, ich hatte eine weitere Hilfs-App in der Haupt-App und kopierte diese in Ressource. In meinem Fall gelöst als: -

1) Ziel -> 2) Erstellungsphase 2) Datei kopieren (n Elemente) 3) Entfernen Sie die Datei kopieren.

Die Helper-App wurde automatisch in Xcode 10.0 kopiert.

 enter image description here

12
Prakash Jat

Probieren Sie alle diese Option aus. Jeder dieser drei Optionen wird sicher für Sie funktionieren

Option 1: Remove all files from

Ziel >> Phasen erstellen >> Quellen kompilieren

Ziel >> Erstellungsphasen >> Ressourcenpakete kopieren

Option 2: Change the build system

Xcode-> Datei-> Projekteinstellungen-> Build System -> Legacy Build System

Option 3: remove and update existing pod

pod-Cache sauber PromisesObjC
Pod-Cache sauber PromisesSwift
cd [Ihr_Projektverzeichnis]
rm -rf Pods /
rm Podfile.lock
Pod-Update 

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

Bevor ich anfange, beachte, dass mein Projekt Carthage als Abhängigkeitsmanager verwendet. 

Keine der vorhandenen Antworten löste mein Problem. Was das Problem für mich gelöst hat, war folgendes. 

Zunächst fiel mir auf, dass der Build-Fehler insbesondere auf ein Framework hinwies. Als Nächstes habe ich App Target> Build Phases für dieses Framework gefiltert. Ich habe festgestellt, dass dieses Framework sowohl in "Link Binary With Libraries" als auch in "Embed Frameworks" vorhanden ist. Da keines der unter "Embed Frameworks" aufgeführten Frameworks von Carthage verwaltet wurde, entfernte ich das betreffende Framework aus "Embed Frameworks". Ich habe dann mein Projekt neu aufgebaut und alles funktioniert gut, einschließlich der Funktionalität, die das fragliche Framework bietet.

9
palmi

In meinem Fall produzierte PDFGenerator eine info.plist-Datei.

 enter image description here

9
fullMoon

Keine der hier vorgeschlagenen Lösungen funktionierte für mich. Dies war insbesondere auf CocoaPods zurückzuführen. Ich habe vorher Cocoapods 1.3.1 verwendet. Ein einfaches Upgrade auf 1.5.3 hat das Problem nicht sofort gelöst.

Die folgenden Schritte waren:

  1. Löschen Sie Podfile.lock
  2. Löschen Sie das Pods-Verzeichnis
  3. Abgeleitete Daten löschen & bereinigen
  4. Beenden Sie Xcode
  5. Aktualisieren Sie CocoaPods auf 1.5.3
  6. pod install ausführen
  7. Arbeitsbereich öffnen und erstellen
9
Justin

Schritte:

  1. Gehen Sie zu Xcode File 
  2. Klicken Sie auf WorkSpace-Einstellungen
  3. Build-System Wählen Sie das Legacy-Build-System aus
9
Sanjay Mali

Das Problem, das ich hatte, ist, dass ich die Info.plist versehentlich in die Projekteinstellungen aufgenommen habe -> Phasen erstellen -> Ressourcen für das Ziel kopieren. 

7
Austin

Lesen Sie diese Antwort, wenn die Fehlermeldung auf Core Data-Dateien verweist

Synopsis: Möglicherweise verfügen Sie sowohl über automatisch generierte als auch über manuell generierte Klassendateien für verwaltete Core Data-Objekte.

Diese Antwort gilt, wenn sich die erste Zeile des Fehlers auf eine Foo + CoreDataProperties.ooder Foo + CoreDataClass.oDatei bezieht. Beispiel:

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

Die Ursache kann durch Erweitern des Abschnitts Compile Swift Source Filesdes Build Transcript ermittelt werden. Beispiel:

<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'

Die erste Datei, die dort erwähnt wird, ist eine Quelldatei in Ihrem Projektverzeichnis, die durch Auswahl Ihres Datenmodells im Projektnavigator und Klicken auf das Menü Editor> Create Managed Object Subclass. Diese Funktion wurde hinzugefügt in Xcode 7 oder so.

Die zweite Datei ist eine Datei mit dem gleichen Namen, die sich jedoch in der DerivedData von Xcode befindet. Diese Datei wird von Xcode während allebuild) automatisch generiert, wenn die Datenmodelldatei (.xcdatamodeld) in der Compile Sourcesbuild phase) des Ziels enthalten ist. Diese Funktion wurde in Xcode 9 oder so hinzugefügt. Zero, one oder Abhängig von der Einstellung des Popups Codegen) werden für jede Entität/Klasse zwei Dateien generiert. Dieses Popup befindet sich im Inspektor Datenmodell), wenn Sie beim Bearbeiten Ihres Datenmodells eine Entität auswählen.

 screenshot of Data Model Inspector

Die Einstellungen sind:

  • Manuell/Keine Es werden keine Dateien generiert
  • Kategorie/Erweiterung Eine Datei, Foo + CoreDataProperties.moder .Swift, die eine Objective-C-Kategorie oder eine Swift-Erweiterung enthält.
  • Klassendefinition Dieselbe Kategorie-/Erweiterungsdatei wird generiert, und zusätzlich wird eine Foo + CoreDataClass.moder .Swiftgeneriert, die Klassendeklaration und -definition enthält.

Sie sehen also, dass das Problem auftritt, wenn ein Entwickler (wie ich), der an den älteren Xcode gewöhnt ist, ein Projekt in einem neueren Xcode startet. Wir denken, dass wir den Menüpunkt Create Managed Object Subclassverwenden müssen, den wir ausführen, um die Dateien zu erstellen, die wir im Projektnavigator sehen können, ohne zu bemerken, dass unsere Einstellungen in Codegenpopup bewirken Xcode zum Erstellen doppelter Dateien, die Apple "clever" im Project Navigator nicht anzeigt, weil sie den Entwicklern nicht vertrauen, zu lesen und den Kommentar in der Kopfzeile zu beachten // Diese Datei wurde automatisch generiert und sollte nicht bearbeitet werden.

Lösung 1 - Verwenden Sie den älteren Weg

Sie können alle automatischen Codegenfür ein Datenmodell mit nur einer Einstellung deaktivieren:

  • Öffnen Sie das Problem Target's Build Phases(Wählen Sie in Project Navigator) das Projekt aus, und wählen Sie dann in der angezeigten Liste GOALS) das Problemziel aus und klicken Sie auf die Registerkarte Build Phases). .
  • Erweitern Sie den Eintrag Compile Sourcesund suchen Sie das Problemdatenmodell (.xcdatamodeld-Datei).
  • Löschen Sie es aus der Kompilierungsliste
  • Stellen Sie sicher, dass das Datenmodell in der Liste Copy Bundle Resourcesenthalten ist.

Lösung 2 - Core Data Magic für Anfänger

Hier gehst du alles auf dem neueren Weg.

  • Lassen Sie Ihr Datenmodell so wie es ist in Compile Sources.
  • Setzen Sie in jedem Entity Inspector in Ihrem Datenmodell Codegenauf Klassendefinition.
  • Löschen und verwerfen Sie im Projektnavigator alle Foo + CoreDataClassDateien und benennen Sie alle Foo + CoreDataProperties.moder .SwiftDateien in etwas wie Foo + MyPropertiesum.
  • Löschen Sie in jeder Datei Foo + MyProperties.moder .Swift, falls Eigenschaften von Xcode generiert wurden, diese Eigenschaften, da sie sich in den versteckten Dateien befinden, die von Codegenerstellt wurden.

Mit dieser Lösung werden Ihre Klassendefinitionen bei jedem Build automatisch aus dem Datenmodell generiert. Sie können sie nicht einmal sehen. Es ist Core Data Magic, Schön und einfach für Anfänger.

Lösung 3 - Für die meisten realen Apps

Lösung 2 ist jedoch nicht geeignet, wenn Sie wirklich nicht verwaltete Eigenschaften hinzufügen möchten. (In Objective-C können Eigenschaften nicht in Kategorien hinzugefügt werden, und in Swift können gespeicherte Eigenschaften nicht in Erweiterungen hinzugefügt werden.) In den meisten Apps der realen Welt möchten Sie wahrscheinlich auf halbem Weg zwischen den Lösungen 1 und 2 wechseln.

  • Hinterlassen Sie Ihr Datenmodell in der Liste von Compile Sources
  • Setzen Sie in jedem Entity Inspector in Ihrem Datenmodell Codegenauf Category/Extension.
  • Löschen Sie im Projektnavigator alle Foo + CoreDataClass.moder .SwiftDateien und benennen Sie alle Foo + CoreDataProperties.moder .SwiftDateien zu vielleicht nur Foo.moder .Swift.
  • Stellen Sie sicher, dass jede Foo.moder .SwiftDatei die Klassendefinition enthält, zu der Sie Ihre eigenen nicht verwalteten Eigenschaften hinzufügen können.

(Bestätigung der Antwort von Positron. Meine Antwort hier erklärt, warum die Antwort von Positron (meine Lösung 1) funktioniert, und fügt Lösung 2 und Lösung 3 hinzu.)

7
Jerry Krinock

Ich hatte eine Reihe von Multiple commands produce-Warnungen - nicht nur die Duplizierung von info.plist in einem Ziel. Einschließlich lokalisierter Ressourcen und String-Dateien, Kopfzeilen usw.

Lösung: Entfernen Sie alle Duplikate in der Zielmitgliedschaft. 

7
Will Gwo

Eine Möglichkeit, die mein Problem gelöst hat, besteht darin, das Build-System in ein älteres Build-System umzuwandeln. Bitte folgen Sie den folgenden Schritten in Xcode 10+ enter image description here

enter image description here

5

Ich hatte dieses Problem, als ich eine Datei mit demselben Namen in zwei verschiedenen Zielen hatte. Aus irgendeinem Grund hatte eine dieser Dateien einen Teil beider Ziele. Im Grunde hatte ich zwei Dateien. Beide Dateien gehörten zu einem Ziel.

Es ist sinnvoll, dass ein Ziel nur einen Dateinamen pro Ziel haben kann. Wenn Sie das Kontrollkästchen des Zielmitglieds für die Datei deaktivieren, die sich nicht auf das Hauptziel bezieht, wurde das Problem behoben.

5
Charlie Fish

Umzug nach Xcode 10, Fehler wie 

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

kann wie folgt gelöst werden:

Gehe zu Xcode->File->Workspace/Project Settings-> Build System -> Legacy Build System.

5
Noor

Einer meiner CocoaPods wurde veröffentlicht und verursachte das Problem. Habe ein Pod-Update gemacht und es hat gut funktioniert.

Ich glaube, es war das LivePerson-SDK

4
ninjaneer

Gehen Sie in die Projekterstellungsphase und entfernen Sie info.plist aus den Kompilierquellen. Dadurch wird das Problem entfernt und das Projekt wird wieder aktiv.

 enter image description here

4
Aditya Sharma

Ich verwende Carthage und Xcode 10.

Meine Lösung ist -> Projekt -> Ziel -> Allgemein -> 

Entfernen Sie die mit Carthage hinzugefügten Frameworks aus "Embedded Binaries". 

normalerweise müssen Sie in Build Phases ein Skript hinzufügen, um die Architektur für den App Store zu entfernen.

In Xcode 10 scheint das Skript immer aufgerufen zu werden. So werden die Frameworks an die richtige Stelle kopiert und Sie müssen sie nicht zur Registerkarte "Allgemein" hinzufügen.

Hinweis: Wenn nicht gesetzt -> in den Build-Einstellungen -> Suchpfade -> Suchpfade des Frameworks -> den Pfad zum Framework festlegen, das mit Carthage hinzugefügt wurde ... "$ (PROJECT_DIR)/Carthage/Build/iOS"

4
Raegtime

Dies bedeutet im Wesentlichen, dass Sie mehrere Dateien mit dem Namen Info.plist haben. Normalerweise ist es in Ordnung, aber Ihre Dateien sind aus Versehen auf dieselbe Zielmitgliedschaft eingestellt. Die Lösung lautet also: Klicken Sie auf jede einzelne Datei und überprüfen Sie ihre Zielmitgliedschaft auf der rechten Seite. Stellen Sie sicher, dass sich diese nicht überschneiden.

3
code4latte

Hatte ein ähnliches Problem, aber mit .swiftdoc-Dateien.

Ich habe Erweiterungen und Gerätetestziele im Projekt. Und sie hatten den gleichen "Produktmodulnamen" (PRODUCT_MODULE_NAME in den Build-Einstellungen) wie die Anwendung. Nachdem die Namen einmalig sind, sind sie verschwunden.

3
Igor Palaguta

Hier ist eine andere funktionierende Lösung: (Wenn Sie Pods verwenden)

  • Wählen Sie in der Seitenleiste "Pods" als Hervorhebungen im Screenshot aus.
  • Klicken Sie auf Build Phase. Erweitern Sie den Abschnitt "Header". Es gibt 3 Optionen Öffentlich, Privat, Projekt
  • Erweitern Sie Öffentlich, und überprüfen Sie, ob doppelte Dateien vorhanden sind. Entfernen Sie es. ERLEDIGT!!

 enter image description here

3

Suchen & Entfernen Duplizieren von Dateien, die aus mehreren Befehlen erstellt werden.

Hier sollte eine zusätzliche Info.plist-Datei entfernt werden (in meinem Fall war es Contents.json)

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

Mein Problem war, dass Xcode 10 in Mojave ausgeführt wurde und ich versuchte, Unit-Tests auszuführen, die ich vor dem Update auf XCode 10 geschrieben habe.

In meinem Fall hatte ich dieses Problem beim Ausführen meines "TestTarget" -Ziels. Um das Problem zu lösen, musste ich eine der Zielabhängigkeiten löschen (in TestTarget> Build-Phasen> Zielabhängigkeiten), da ich neben meinem "TestTarget" zwei andere Ziele hatte und beide dasselbe Skript ausführten und an einem bestimmten Punkt Dateien erstellten/kopierten.

Und das widersprach dem, was in Build System Release Notes für Xcode 10hier erwähnt wurde:

Es ist ein Fehler, wenn eine einzelne Datei im Build von mehr als einem Buildbefehl erzeugt wird. Wenn beispielsweise zwei Ziele dieselbe Ausgabedatei aus einer Shell-Skriptphase deklarieren, müssen Sie die Deklaration der Ausgabedatei in ein einzelnes Ziel zerlegen.

2

Wählen Sie Ihr Schema (obere linke Ecke) -> Schema bearbeiten ... -> Erstellen (linke Registerkarte) -> deaktivieren Sie "Implizite Abhängigkeiten suchen".

 enter image description here

Danach müssen Sie möglicherweise Abhängigkeiten korrigieren, die von Ihren Zielen nicht explizit importiert wurden.

2
MarekR

Ich hatte das gleiche Problem mit einer plist . Es stellte sich heraus, dass ich zwei Exemplare davon hatte, eine war leer und eine in meinem lokalisierten Ressourcenordner.

Wenn Sie Ihren Fehler überprüfen, haben die Zeilen 1) und 2) unterschiedliche Pfade. Sie haben diese Datei wahrscheinlich zweimal in der Kopierphase definiert.

Überprüfen Sie Ihre Zieleigenschaften, die Erstellungsphasen, die Ressourcen zum Kopieren von Paketen und suchen Sie nach einer doppelten info.plist. Finde heraus, welcher Pfad falsch ist und entferne ihn. (Wahrscheinlich möchten Sie es auch aus dem Dateisystem löschen.)

2
rodfleischer

In meinem Fall wurde eine Info.plist-Datei von einem meiner Cocoapods aufgenommen. Gelöscht und das Problem gelöst.

2
Rebeloper
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'

Wie wir sehen, bekam ich den gleichen Fehler. In meinem Fall gab es eine zusätzliche Kopie des Ordners " Chat21Core " im " TildeskWidget " Ordner. So kann eine der möglichen Lösungen auch einfach den Fehler vollständig lesen und versuchen, herauszufinden, ob eine zusätzliche Kopie vorhanden ist oder nicht.

1

Dieses Problem trat für mich auf, nachdem ich der App einen zweiten Teil der Fabric-Suite von SDKs hinzugefügt hatte.

Was tatsächlich passierte, war, dass das GoogleUtilies Framework dem Pods-Projekt zweimal hinzugefügt wurde

 Two entries for GoogleUtilities.framework

Dies wäre vor Xcode 10 in Ordnung gewesen, aber Xcode 10 wird sich beschweren, wenn eine Datei zwei Aktionen enthält (in diesem Fall eine Kopieraktion).

Es ist sicher, das zweite Framework zu entfernen.

0
Damo

Ich hatte mehrere Kopien derselben Datei. Behalten Sie einfach eine Kopie und entfernen Sie alle verbleibenden. Clean Build und Ausgabe sortiert.

0
Avinash Jadhav

In meinem Fall hat es geholfen, die fehlenden Daten und Build-Einstellungen (in dieser Reihenfolge) zu bereinigen und Xcode und Simulator neu zu starten.

Ich habe versucht, Lösung -> Ziel öffnen -> Erstellungsphasen> Bündelressourcen kopieren zu tun, aber es ist dort wieder aufgetaucht. Die Bereinigung von Daten, die nicht mehr verfügbar sind, hat geholfen. In dem Fehler wird angezeigt, wo sich das Duplikat befindet. In meinem Fall wurde angegeben, dass es sich in meinem App-Bundle und in nicht verfügbaren Daten befindet.

0
Anna Orlova

Für mich war das Problem damit verbunden, dass dieselbe Datei zweimal in den Ressourcen des Pakets enthalten war. Ich bin mir nicht sicher, wie das passiert ist, aber ich habe eines davon entfernt und es wurde gut mit dem neuen Build-System kompiliert.

0
Larry

OK also für alle, die hier keine richtige Antwort gefunden haben, weil es nichts mit info.plist zu tun hat ...

Ich bin auf dieses Problem gestoßen, als ich eine MacOS-App ohne CocoaPods oder Carthage entwickelte, nur mit SPM-Paketen, wobei xcodeprojs manuell in den Arbeitsplatz gezogen wurde.

Als ich nur eine Abhängigkeit verwendete (es wurde Swift-NIO von innen verwendet), war alles in Ordnung, aber als ich noch eine weitere Abhängigkeit mit überlappenden Unterdepsen hinzufügte, bekam ich dieses unangenehme Problem.

Die Lösung besteht darin, zu versuchen, alle wichtigen Abhängigkeiten separat zu kompilieren (dies würde aufgrund nicht vorhandener Checkout-Ordner in den entsprechenden .build-Ordnern fehlschlagen. Dies ist höchstwahrscheinlich der Fall, weil Sie Ihre Dateien in den Bearbeitungsmodus (Swift package edit YourPkg ...) setzen.

Sie unedit Ihre pkgs und zwingen alle Abhängigkeiten, erfolgreich zu kompilieren. Danach müssen Sie sicherstellen, dass sich die verknüpften Binaries innerhalb des Hauptziels nicht überlappen (ich bin nicht sicher, ob dies wirklich notwendig ist, aber nur für den Fall).

Danach sollte alles super klappen :)

0
Kirill Titov

Überprüfen Sie Ihre unterstützten Plattformen!

Wir haben uns monatelang mit diesem Thema bei mehreren unserer Kinderprojekte beschäftigt. Wir haben festgestellt, dass AVAILABLE_PLATFORMS auf "appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator" gesetzt wurde, wodurch mehrere Plattformen erstellt wurden, was zu dem Fehler "Mehrere Befehle erzeugen Fehler" führte. Beispielsweise wurde die "Foo" -Plattform sowohl für iOS als auch für TVOS erstellt, und daher erstellten mehrere Erstellungsbefehle eine Foo.framework -Datei.

Sobald wir uns gesetzt haben

AVAILABLE_PLATFORMS = iphoneos iphonesimulator

in unserer Stammdatei xcconfig hat dieses Problem alle untergeordneten Projekte beseitigt.

So überprüfen Sie Ihre Konfiguration

Lauf

xcodebuild -project FitbitMobile.xcodeproj -target "FitbitMobile" -showBuildSettings > BuildSettings.txt

Überprüfen Sie, ob die Ausgabe auf den erwarteten Wert eingestellt wird. Wenn Sie eine iOS-App sind und für tvOS bauen, möchten Sie Ihre Konfiguration aktualisieren.

0
Jason

Mein ProjectName.xcodeproj hatte einen gültigen und einen ungültigen Verweis auf eine Datei mit demselben Namen. Gleicher Dateiname im Projektnavigator, ein Dateiname war rot, der andere in Ordnung. Ich habe die ungültige Referenz (die rote) entfernt, das Problem wurde gelöst.

0
Surpher

In meinem Fall (ich verwende Carthage) das Problem mit

error: Multiple commands produce 
1) Target *** has copy command from
2) That command depends on command in Target ***: script phase “Run Carthage Script” 

wurde durch das Importieren von Frameworks in Embeded Frameworks und Run Carthage-Skript phase in Build Phases -Konfiguration verursacht 

Diese 2 Phasen kopieren Frameworks, um abgeleitete Daten abzulesen. Xcode sieht also doppelte Dateien und druckt diese Fehler mit Warnung:

ignoring duplicated output file: (in target ***)

Nachdem doppelte Frameworks aus der Phase Embeded framework entfernt wurden, funktioniert alles einwandfrei.

0
Budyn

In Xcode 10 funktioniert es auch mit der vorherigen Version

  1. Doppelklicken Sie auf das Projekt
  2. Sie sehen ein Bild wie unten
  3. wählen Sie TARGET von links aus
  4. Erweitern Sie Bündelressourcen kopieren (0 Elemente)
  5. Entfernen Sie die entsprechende Datei, die den Fehler verursacht

 enter image description here

0
Aravind Vemula

Falls Sie diesen Fehler mit React Native erhalten, insbesondere mit libyoga.a, überprüfen Sie den this Github-Kommentar

0
Uri Klar

Wenn das Problem mit Ihrem Fehler .app/(und nicht .app/Info.plist) ist, sehen Sie diese Antwort hier: xcode 10 Fehler: Mehrere Befehle erzeugen - reagieren nativ

0
Alex Kornhauser

Für diejenigen, die React Native und Cocoapods verwenden

Das Problem wurde von einigenlibRN ... a-Dateien verursacht. Ich habe es behoben, indem ich einige davon wie libRNScreens.a und libRNGestureHandler.a aus Build Phases -> Binary mit Bibliotheken verknüpfen entfernt habe, da sie bereits aus anderen Bibliotheken referenziert wurden. Andere mussten durch ihre Pod-Version wie libRNDeviceInfo.a ersetzt werden:

 enter image description here  enter image description here

In meinem Fall habe ich die Datei GoogleService-Info.plist zweimal enttäuscht zu meinem Firebase-Projekt hinzugefügt.

Ich lösche zuerst den hinzugefügten GoogleService-Info.plist und das Problem ist gelöst.

0

In meinem Fall hatte ich Dateien aus einem anderen Projekt importiert und hatte an zwei Stellen dieselbe Klasse. 

Ich hatte folgende Fehlermeldung:  enter image description here

Als ich den Fehler kopierte, stellte sich heraus, dass viel mehr Textinformationen kopiert wurden, und als ich den Speicherauszug las, kam ich zur entsprechenden Zeile:

: 0: Fehler: Dateiname "EventNode.Swift" zweimal verwendet: 

das wurde von den Standorten gefolgt und erlaubte mir, das Problem zu beseitigen.

In dem Prozess habe ich herausgefunden, was in "Ressourcenpakete kopieren" sein muss:

  • Hauptplatine
  • Assets.xcassets
  • alle SpriteKit-Szenen (.sks), die Ihr Projekt verwendet
0
green_knight

Wenn Sie private cocoapod entwickeln und diese bereits über Podfile hinzugefügt haben,

entferne es aus dem Embedded Binaries Abschnitt:

 Embedded Binaries in test app

Wenn Ihre App den Fehler generiert, der sich auf mehrere .app-Dateien bezieht, entfernen Sie die .plist-Dateien aus "Ressourcen kopieren" WIRD NICHT ARBEITEN.

Wenn der Fehler mit der .app-Datei zusammenhängt, führen Sie die folgenden Schritte aus

  1. Wählen Sie das Ziel aus. 

  2. Gehen Sie zur Registerkarte Build Phases.

  3. Entfernen Sie die in Output Files aufgeführten Elemente.
  4. Kompilieren Sie den Code, wenn er erfolgreich kompiliert wurde, und folgen Sie den nächsten Schritten nicht.
  5. Wenn Code nicht erfolgreich kompiliert wird und Xcode möglicherweise einen Fehler im Zusammenhang mit "Bibliothek nicht gefunden" ausgibt. Fügen Sie dann die fehlende Bibliothek in General Tab in Linked Frameworks and Libraries hinzu, die Xcode im Fehler erwähnt hat.
  6. Fügen Sie diese Bibliotheken (die von Xcode durch Kompilierfehler abgerufen werden) so lange in Linked Frameworks and Libraries hinzu, bis der Code erfolgreich kompiliert wurde.

    Hoffe das hilft.

0
Abuzar Amin

In meinem Fall kommt das Problem von der podfile. Ich muss add mein test Projekt auf die podfile Projekt:

target 'MyApp' do
    pod 'Firebase'
    target 'MyAppTests' do
        inherit! :search_paths
        pod 'Firebase'
    end
end

Danach muss ich ausführen:

pod update
0
Sean Stayn

Ich habe das gleiche Problem aber mit den Header-Dateien. 

 enter image description here

In diesem Fall können Sie die Kopfzeilen von "Öffentlich" in den Abschnitt "Projekt" verschieben.

 enter image description here

0

In Abhängigkeitsprojekten, die von cocoapods verwaltet werden, wurde das Problem gelöst, indem ein lokaler podspec bereitgestellt wurde, um info.plist aus Quellen auszuschließen. Nehmen Sie Godzippa als Beispiel

Poddatei pod 'Godzippa', :podspec => "venders/godzippa.podspec"

venders/godzippa.podspec s.source_files = 'Sources/*.{h,m}'

0
Shuo

Für Personen, die darauf vertrauen, dass Namen beim Import von Swift-Headern gleich sind. (Bsp .: Header-Dateiname: #import "MyApp-Swift.h"):

Der Name dieser Header-Datei wird tatsächlich durch ${Swift_MODULE_NAME}-Swift.h bestimmt, wobei Swift_MODULE_NAMEPRODUCT_MODULE_NAME als Standardwert verwendet. 

Darüber hinaus gibt es eine Build-Einstellung, die für das gesamte Projekt gilt: Swift_OBJC_INTERFACE_HEADER_NAME “Objective-C Generated Interface Header Name” und der Standardwert ist ${Swift_MODULE_NAME}-Swift.h. Durch die Änderung dieses Werts in MyApp-Swift.h konnten alle Ziele in unserem Aggregat-Build denselben Headernamen verwenden, und aus ihnen konnte der PRODUCT_MODULE_NAME-Wert geändert werden.

0
kezi

In meinem Fall, Build-Archivierungsfehler vs Xcode10

-1: Mehrere Befehle erzeugen einen '/UserCon/Ark/Library/Developer/X/Code/DackedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_carday_app/IntermediateBuilder/Unters/ArchiveInterkanate/react_carday_ap/ 1) Ziel 'aack' hat einen Befehl mit einer Ausgabe. </ A/a/a/a/a/a/a/</ a/</ a/</ a/</ a /> </ p> </ t </ t </> </ p> </ t </ t </ t </> </ p> </ t </ t </ t </ t </ t </ t </> </ p> </ t </ t <//<//<//<//<//</ </ </ </> </ strong> </ p> </ p> </ end </ </ t <//</ b> </ t> </ t </ t </ t </ t </ t </ t </ t </ t </ t </ t </ t </ t </ t </ t </ t </ t </ t </ t </ t </ t </ t </ a_> </ t> </ p> </ p> 2) Ziel 'yak' hat einen Befehl mit der Ausgabe '/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/').

Da sollte so etwas wie ein Balg in deinem Podfile sein

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

und dann pod install ausführen 

0
SenKe

In meinem Fall habe ich meine GoogleService-info.plist-Datei mehrfach kopiert, da sie sowohl in meiner Haupt-App als auch in einem Share-Erweiterungsprojekt enthalten ist.

Die Lösung besteht darin, diese Datei aus dem Erweiterungsprojekt auszuschließen (indem Sie sie in der Datei-InspectorSeitenfensteransicht vom Target deaktivieren). Ich mag die Option nicht, zum Legacy Build System zu wechseln (das auch für mich funktioniert). 

0
Wei WANG

In meinem Fall hatte ich denselben benutzerdefinierten Public Header Folder Path für zwei verschiedene statische Bibliotheken. Eine war für eine Haupt-App, eine andere für eine Uhren-App. Der Pfad für die Watch-App wurde geändert und jetzt ist alles in Ordnung.

0
Alexey

Eigentlich können Sie ein älteres Build-System verwenden, aber Sie werden nicht die schnellen Build-Zeiten erhalten, dh) Sie werden nicht die neuen Build-System-Funktionen erhalten, die in XCode10 als Standard festgelegt wurden Dies ist nur eine Problemumgehung, um nicht die neuesten Build-Funktionen zu erhalten https://developer.Apple.com/documentation/xcode_release_notes/xcode_10_release_notes/build_system_release_notes_for_xcode_10