it-swarm.com.de

Xcode-Warnung: "Mehrere Buildbefehle für Ausgabedatei"

Ich bekomme eine Fehlermeldung wie diese:

[WARN] Warnung: Mehrere Buildbefehle für die Ausgabedatei /Developer/B/Be/build/Release-iphonesimulator/BB.app/no.png

[WARN] Warnung: Mehrere Buildbefehle für die Ausgabedatei /Developer/B/Be/build/Release-iphonesimulator/BB.app/d.png

[WARN] Warnung: Mehrere Buildbefehle für die Ausgabedatei /Developer/B/Be/build/Release-iphonesimulator/BB.app/n.png

Aber ich habe Xcode geprüft und sehe keine Duplikate solcher Dateien. Wie dieser Beitrag in den Apple-Mailing-Listen sagt, gibt es keine Duplikate.

479
Futur

Die Antwort darauf ist sehr einfach.

Suchen Sie in Ihrem xcode nach den Dateien, die die Warnung auslösen, und löschen Sie sie einfach.

Der Xcode zeigt nur einen Verweis auf diese Datei in den Suchergebnissen, aber stoppen Sie nicht dort, sondern löschen Sie sie. (Machen Sie eine Sicherungskopie Ihrer Projektdatei, bevor Sie sie löschen.)

Wenn Sie nun einen Build ausführen, wird die Warnung entfernt angezeigt. (Diese Antwort gilt für eine frühere Version von xcode).

104
Futur

Wählen Sie im Projektnavigator Ihre Xcode-Projektdatei aus. Hier werden Ihnen die Projekteinstellungen sowie die Ziele im Projekt angezeigt. Schauen Sie sich die Build-Phase "Ressourcenpakete kopieren" an. Sie sollten die fehlerhaften Dateien zweimal in dieser Liste finden. Löschen Sie die doppelte Referenz.

Xcode beschwert sich darüber, dass Sie versuchen, dieselbe Datei zweimal mit Ihrer Anwendung zu bündeln.

795
Mark Suman

Dies wird leicht verursacht, wenn Sie git-basierte Unterprojekte hinzufügen. Xcode ist nicht intelligent genug, um den .git-Unterordner zu ignorieren, auch wenn er von Finder nicht angezeigt wird. Daher wird es sehr verwirrt, dass es mehrere Dateien mit dem Namen "master" oder "exclude" gibt (Standard-Git-Repo-Dateien). Wechseln Sie mit Xcode4 zum Projekt (Stamm der linken Baumstruktur), klicken Sie auf Ihr App-Ziel und erweitern Sie "Bundle-Ressourcen kopieren". Entfernen Sie anschließend alle Verweise auf .git. Sie sollten sie sowieso nicht in Ihre App gebacken haben.

124
slf

Dies ist kein Xcode-Fehler, obwohl die Warnmeldung nicht hilfreich genug ist, um die tatsächliche Ursache zu beschreiben.

Diese Fehlermeldung tritt auf, wenn sich in Ihrem Projekt mehrere Dateien befinden, die denselben Namen haben. Sie müssen nur die Dateien mit doppelten Namen löschen oder umbenennen, und das Problem ist gelöst.

52
aimacworx

Dies ist der Fall, wenn Sie zwei Dateien mit demselben Namen im Projekt haben. Obwohl sich Dateien in XCode in Gruppen befinden, wenn das Projekt kompiliert wird, befinden sich alle Dateien im selben Verzeichnis. Wenn Sie also /group1/image.jpg und /group2/image.jpg haben, enthält das kompilierte Projekt nur eine der beiden image.jpg-Dateien.

25
respectTheCode

Wie bereits erwähnt, kann dieses Problem auftreten, wenn Sie im Projektnavigator mehrere Dateien mit demselben Namen, jedoch in verschiedenen Gruppen (gelbe Ordner) haben. In meinem Fall war dies beabsichtigt, da ich mehrere Unterverzeichnisse mit jeweils einem "preview.jpg" hatte, das ich in das App-Paket kopieren wollte:

group references

In dieser Situation müssen Sie sicherstellen, dass Xcode die Referenz directory (blaues Ordnersymbol) erkennt, nicht nur die Gruppen.

Entfernen Sie die fehlerhaften Dateien und wählen Sie "Referenz entfernen" (damit wir sie nicht vollständig löschen):

remove group references


Fügen Sie sie erneut zum Projekt hinzu, indem Sie sie zurück in den Projektnavigator ziehen. Wählen Sie im angezeigten Dialogfeld "Ordnerreferenzen für hinzugefügte Ordner erstellen":

add as folder references


Beachten Sie, dass die Dateien im Projektnavigator jetzt ein blaues Ordnersymbol haben:

folder references


Wenn Sie nun im Abschnitt "Bundle-Ressourcen kopieren" in den Erstellungsphasen des Ziels nachsehen, werden Sie feststellen, dass es einen einzelnen Eintrag für den gesamten Ordner gibt, und nicht für jedes Element, das im Verzeichnis enthalten ist. Der Compiler beschwert sich nicht über mehrere Buildbefehle für diese Dateien.

16
Stuart

Dies ist kein Fehler. Xcode-Assistenten können Ihnen dabei helfen. Wählen Sie das Ziel links im Projektnavigator aus. Klicken Sie unten in den Einstellungen auf "Einstellungen überprüfen". Xcode überprüft die Einstellungen und entfernt nach Möglichkeit Duplikate.

15
Gunther

eine andere Version dieser Situation kann auftreten, wenn Duplikate in der HeaderBuild-Phase vorhanden sind.

um das zu beheben…

  1. gehen Sie zu Ihrem Projektziel
  2. wähle Build Phases
  3. wählen Sie die Headers-Buildphase
  4. geben Sie den in der Warnung angezeigten Namen ein
  5. beachten Sie die zwei (oder mehr) Elemente
  6. finden Sie die +|--Felder in der unteren linken Ecke
  7. wählen Sie eines der Elemente aus und klicken Sie auf die Schaltfläche -
14
john.k.doe

In meinem Fall wurde das Problem durch den gleichen Namen von Ziel und Ordner innerhalb einer Gruppe verursacht.

Benennen Sie die Datei oder den Ordner um, um das Problem zu beheben.

7
Dmitry

Ich habe dafür eine ziemlich einfache Lösung gefunden:

  1. Wählen Sie im Projektnavigator die Datei aus, die das Problem verursacht
  2. Deaktivieren Sie die Zielmitgliedschaft im Dateiinspektor
  3. Bauen Sie das Projekt auf
  4. Überprüfen Sie die Zielmitgliedschaft für die Datei erneut

Die Warnung ist weg! Überprüfen Sie dieses Bild als Referenz.

enter image description here

5
Mahmoud Fayez

Ich bin mir ziemlich sicher, dass dies durch einen XCode 4-Fehler verursacht werden kann, zumindest in den Fällen, in denen ich ihn gefunden habe. 

Dies geschieht, wenn Sie mehrere sprachenabhängige Dateien gleichzeitig zum Projekt hinzufügen. Ich fand das heraus, indem ich die Unterschiede zwischen den Gitern untersuchte. Ich habe beim Commit nichts getan, aber einige neue lokalisierte Nib-Dateien hinzugefügt. Im Rückblick auf die Datei project.pbxproj wurden jedoch mehrere doppelte Verweise für Dateien hinzugefügt, die bereits im Projekt vorhanden waren. Die Dateien, die es auch tat, schienen mir zufällig. 

Ich habe dasselbe Verhalten mehrmals reproduziert.

Durch das Löschen dieser Dateien aus dem Projekt wird das Problem nicht behoben, da nur die ursprüngliche Referenz gelöscht wird und die Duplikate verbleiben. Der einzige Weg, das Problem zu beheben, besteht darin, ein Commit auszuführen und von vorn zu beginnen oder die Projektdatei von Hand zu bearbeiten. Dies ist eine wirklich gute Möglichkeit, das Problem noch weiter zu verbessern, da es schwierig ist, die zu entfernenden Duplikate zu ermitteln, und Sie müssen es tun in einer Tonne verschiedener Orte.

Xcode 4 ist für mich eine riesige Enttäuschung.

5
Steve

Dies geschieht, weil ur "no.png" "d.png" und "n.png" in Ressourcen doppelt vorhanden sind. Suchen Sie einfach nach doppelten Dateien und löschen Sie sie.

4
user944031

Der Fehler scheint aufzutreten, wenn Sie mehr als eine Referenz auf dieselbe Datei haben. Ich hatte 2 Dateien mit demselben Namen und diese Fehlermeldung wurde angezeigt. Wenn ich eines lösche, verschwindet der Fehler .. 

3
hilla

Noch eine Variation zu diesem Thema. Ich hatte die gleiche Nachricht, dass keine der zuvor vorgeschlagenen Lösungen das Problem gelöst hat (ich hatte definitiv nur eine Kopie der betreffenden Datei, zum Beispiel).

Meine Lösung bestand darin, die Datei project.pbxproj in einem Texteditor zu bearbeiten (nach dem Beenden von XCode und natürlich der Sicherung der Datei) und alle Verweise auf die fehlerhafte Datei zu entfernen. Nachdem ich XCode erneut gestartet hatte, fügte ich die Datei manuell wieder in das Projekt ein und alles war in Ordnung.

(Mein Verdacht ist, dass mir dieses Problem durch ein Handbuch passiert ist, dh: Nicht-XCode, Zusammenführen der Projektdatei.)

2
orlanthi

Ich hatte vor Minuten das gleiche Problem. Ich habe erwähnt, dass das Ändern des 'Implementierungsziels' mein Problem behoben hat.

1
Martijn Mellens

Öffnen Sie den Ordner "Frameworks" in Ihrem Projekt und stellen Sie sicher, dass sich nur Frameworks darin befinden. Ich habe versehentlich den gesamten Entwicklerordner hinzugefügt!

1
rjobidon

Swift 3 : (aber auch die älteren Versionen) passiert, wenn ich Assets mit Duplikaten habe. Benennen Sie einfach die Dateien mit diesem Problem um und alles läuft gut. 

Es kann auch vorkommen, dass Sie einen Assets.xcassets erstellt haben und die Duplikate mit neuen Namen umbenannt haben. Nachdem Sie den Code vergessen haben, entfernen Sie ihn, um die Ordnerreferenzen hinzuzufügen.

0

Was für mich funktionierte:

  1. Ziehen Sie das Repo in den Papierkorb. 
  2. reponieren Sie erneut. 
  3. richten Sie Ihr Repo mit korrektem Remote-Tracking ein. git remote add <url.git> oder git remote set-url <url.git>

Das hat absolut für mich funktioniert. Wenn ich git pull upstream develop für eine lokale Abhängigkeit ausgeführt habe, würde git in meinem Fall aus einem schwer fassbaren Grund doppelte Dateien aus mehreren Commits abrufen. 

Nachdem Sie die oben genannten Schritte ausgeführt haben, wurde das Problem behoben und git pull upstream develop zog nicht mehr gleichzeitig mehrere Commits ab. Vielleicht gab es einen seltsamen git Cache für mein Repo. 

0
ScottyBlades

Für mich wurde für Ziel> Build-Einstellungen> Paketierung> Produktname dasselbe festgelegt wie für einen anderen Wert, auf den in einer .plist-Datei verwiesen wird, der an meine App angepasst wurde. Aufgrund unseres Erstellungsprozesses werden möglicherweise doppelte Dateien erstellt.

0
The Red Pea

Der Schlüssel war, pod deintegrate und rm *.workspace zu machen! Was für eine Zeitverschwendung !

0
Renetik

Ein einfacher Weg ist, 

  • Gehe zum App-Ziel 
  • Gehen Sie zu Build-Phasen
  • Ausgabedateien
  • Löschen Sie den Pfad der Ausgabedateien und erstellen Sie ein Projekt. Es wird erfolgreich ausgeführt.
0
Rajesh