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.
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.
Build Settings
Product Module Name
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
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.
Hinweis: Wenn Sie auch eine Uhren-App entwickelt haben, müssen Sie auch die Plist von der Uhr und der Erweiterungsuhr entfernen.
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:
- Gehen Sie in Xcode zu File-> Project/Workspace-Einstellungen.
- Ändern Sie das Buildsystem in das Legacy Build-System.
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!
Gehe zu Xcode -> Datei -> Arbeitsbereich-Einstellungen. Sie werden ein Popup wie finden.
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 :)
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:
info.plist
entfernen.Probieren Sie es aus:
Gehen Sie in Xcode zu File-> Project/Workspace-Einstellungen.
Ändern Sie das Buildsystem in das Legacy Build-System.
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.
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
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 :-)
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.
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:
pod install
ausführenSchritte:
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.
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.
Die Einstellungen sind:
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.
Sie können alle automatischen Codegenfür ein Datenmodell mit nur einer Einstellung deaktivieren:
.xcdatamodeld
-Datei).Hier gehst du alles auf dem neueren Weg.
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 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.
(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.)
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.
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.
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
.
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
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"
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.
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.
Hier ist eine andere funktionierende Lösung: (Wenn Sie Pods verwenden)
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'
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.
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.)
In meinem Fall wurde eine Info.plist-Datei von einem meiner Cocoapods aufgenommen. Gelöscht und das Problem gelöst.
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.
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
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.
Ich hatte mehrere Kopien derselben Datei. Behalten Sie einfach eine Kopie und entfernen Sie alle verbleibenden. Clean Build und Ausgabe sortiert.
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.
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.
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 xcodeproj
s 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 :)
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.
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.
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.
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.
Falls Sie diesen Fehler mit React Native erhalten, insbesondere mit libyoga.a
, überprüfen Sie den this Github-Kommentar
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
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:
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.
In meinem Fall hatte ich Dateien aus einem anderen Projekt importiert und hatte an zwei Stellen dieselbe Klasse.
Ich hatte folgende Fehlermeldung:
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:
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
Wählen Sie das Ziel aus.
Gehen Sie zur Registerkarte Build Phases
.
Output Files
aufgeführten Elemente.General
Tab in Linked Frameworks and Libraries
hinzu, die Xcode im Fehler erwähnt hat.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.
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
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}'
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_NAME
PRODUCT_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.
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
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).
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.
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