Build schlägt fehl mit "Befehl fehlgeschlagen mit einem Exit-Code ungleich Null"

79

Wenn ich versuche, meine App mit Xcode zu erstellen, unterbricht ein Fehler den Erstellungsprozess:

Befehl CompileStoryboardmit einem Exit-Code ungleich Null fehlgeschlagen

Manchmal wird stattdessen dieser Fehler angezeigt:

Befehl CompileSwiftmit einem Exit-Code ungleich Null fehlgeschlagen

Ich habe New Build System aktiviert.

Was kann ich tun, um dies zu beheben?

Tamás Sengel
quelle
In xcode 10 - stackoverflow.com/a/52722094/822420 kann es Ihnen helfen
ram

Antworten:

44

Das Schließen von Xcode hatte für mich keine Auswirkung. Stattdessen habe ich das Projekt mit bereinigt CommandShiftK.


Ich fand auch einen anderen Grund: Ich hatte einen Storyboard-Verweis auf ein anderes Storyboard, das ich entfernt hatte. Die schnelle Lösung löschte dies.

Geben Sie hier die Bildbeschreibung ein

George_E
quelle
Nun, das Schließen Ihres Projekts macht es nicht sauber, deshalb hat es nicht funktioniert :)
Led
32

Wenn Sie die Erstellung eines Projekts beenden, während sich der Compiler mitten in etwas "Wichtigem" befindet, kann dieser Fehler auftreten. In diesem Fall verschwindet dieser Fehler , wenn Sie das Projekt erneut erstellen und normal beenden.

Tamás Sengel
quelle
7
Hat bei mir nicht funktioniert. Dieser Fehler trat auf, als ich versuchte, die info.plistDatei zu lokalisieren .
Ricardo Mutti
2
Hat auch bei mir nicht funktioniert, besonders wenn ich versuche, das zuvor erstellte Framework einzubetten.
Abdulrahman Masoud
3
Hat nicht funktioniert. Es wurde auch versucht, den Build-Ordner mit Befehl + Alt + Shift + K zu löschen. Keine Reaktion.
Atereshkov
09. Januar 2019 mit Xcode 10.1 und dies ist definitiv nicht die richtige Antwort
NSDumb
1
Zuerst wurde gereinigt (CMD + SHIFT + K), dann wurde gebaut (CMD + B)
Daniel Springer
28

Dies ist ein bekanntes Problem mit Swift 4.2 und Xcode 10. Ich habe hier einen Artikel gefunden, der es für mich behoben hat: https://github.com/Yummypets/YPImagePicker/issues/236

Kurz gesagt, gehen Sie zu den Build-Einstellungen Ihres Projekts, fügen Sie eine benutzerdefinierte Einstellung mit dem Namen SWIFT_ENABLE_BATCH_MODE hinzu und setzen Sie den Wert auf NO.

Zuvor habe ich jede der hier vorgeschlagenen Methoden ausprobiert (neu erstellen, Xcode beenden, bereinigen und neu erstellen, abgeleitete Datendateien löschen). Keiner von ihnen hat funktioniert.

Nachdem ich die benutzerdefinierte Build-Einstellung gemäß Artikel hinzugefügt hatte, teilte mir Swift den wahren Fehler mit. In meinem Fall fehlte es}, aber es konnte eine beliebige Anzahl von Problemen geben.

cdeerinck
quelle
21

Ich hatte auch das gleiche Problem in xcode 10 und habe alle angebotenen Lösungen ausprobiert, aber nichts hat funktioniert.

Dann habe ich alle Dateien und Ordner des folgenden Ordners gelöscht:

~/Library/Developer/Xcode/DerivedData

und es funktionierte wie ein Zauber.

Krishna Meena
quelle
9
Diese Antwort hat funktioniert. Verwenden Sie zum Kopieren und Einfügen in das Terminal Folgendes:cd ~/Library/Developer/Xcode/DerivedData && open .
tww0003
1
danke, ich habe nach lösungsstunden gesucht, du hast den tag gerettet!
Ikel
Ich kann diesen Weg nicht einmal finden. Aber habe den Trick mit @ tww0003 Code gemacht.
Dpedrinha
@ Dpedrinha Ja, weil das von meinem lokalen System ist. Ich habe den Pfad jetzt aktualisiert. Sie können ihn finden.
Krishna Meena
11

Dieser Fehler ist mir passiert, als ich vergessen habe, die Entitätseigenschaften vor dem Erstellen der NSManagedObject-Unterklasse zu ändern. Gelöst von:

  1. löschen Entity+CoreDataClass.swiftund Entity+CoreDataProperties.swift.
  2. Ändern Sie unter "Klasse" des Entity Model Inspector "Modul" in Current Product Moduleund "Codegen" in Manual/None.
  3. Erstellen Sie das NSManagedObject neu.

Bild

JeffreyWang23
quelle
Was ist CoreDataClass ?
IgorGanapolsky
9

Dieser Fehler trat auf, als ich mein Projekt von Swift 4 auf 5 aktualisierte. Ich habe zuerst alle meine Pods auf die neuesten Versionen aktualisiert. Als ich baute, zeigten einige Pods diesen Fehler.

Die folgenden Schritte haben dieses Problem für mich behoben:

  1. Alle Pods entfernt von Podfile
  2. Wird ausgeführt pod install, um alle installierten Pods zu entfernen
  3. pod deintegrateWird ausgeführt , um die Unterstützung für CocoaPods zu entfernen
  4. Gelöscht Podfile.lockund .xcworkspaceaus meinem Projekt also keine CocoaPods mehr
  5. Jetzt ist mein Projekt ein reines Xcode-Projekt
  6. Öffnete mein Projekt aus der regulären .xcodeprojDatei
  7. Die Swift-Version meines Projekts wurde in Swift 5 geändert
  8. Projekt wurde bereinigt (cmd + shift + K)
  9. Xcode beendet
  10. Alle Pods in meinem wiederhergestellt Podfile
  11. pod installWird ausgeführt, um CocoaPods wieder zu integrieren und meine Pods hinzuzufügen
  12. Öffnete das Projekt aus der .xcworkspaceDatei
  13. Gereinigt und umgebaut
  14. Einige alte Pods, die noch Swift 4.0 verwendeten (in meinem Fall SlideMenuControllerSwift), wurden auf Swift 5.0 gesetzt und verursachten viele Buildfehler in ihrem Code. Ich habe es wieder auf Swift 4.0 korrigiert, indem ich das Pods-Projekt geöffnet und sein Ziel ausgewählt habe.
  15. Wieder gereinigt, wieder aufgebaut.

Jetzt habe ich nur noch Fehler in meinem eigenen Projektcode, die mit dem Unterschied in der von mir gemachten Swift-Version zusammenhängen. Meine Aufgabe ist es jetzt, sie zu reparieren.

Mostafa Al Belliehy
quelle
Was ist, wenn wir Karthago anstelle von Pod verwenden?
IgorGanapolsky
8

Ich hatte den Fehler Command LinkStoryboards failed with a nonzero exit codeund stellte fest, dass ich einen Verweis auf ein nicht vorhandenes Storyboard verwendete. Ich hatte kürzlich den Namen einer Storyboard-Datei geändert, sodass das Ändern des Verweises vom "alten" Namen in den "neuen" Namen das Problem für mich löste.
Möglicherweise haben Sie nicht genau den gleichen Fehler wie ich, aber eine einfache Möglichkeit, eine detailliertere Erklärung des Fehlers zu finden, besteht darin:

  • Zeigen Sie den Problemnavigator an (während der Fehler bei der Erstellung angezeigt wird).
  • Klicken Sie auf den Fehler: Klicken Sie im Issue-Navigator auf den Fehler
  • Dann sollten Sie mehr über Ihren Fehler sehen: Der Befehl LinkStoryboards ist mit einem Exit-Code ungleich Null fehlgeschlagen


Ich hoffe das hilft. Bitte, ich bin mir bewusst, dass ich aus Erfahrung mit einem anderen Fehler antworte, als diese Frage gestellt wurde, aber ich glaube, dieser Rat sollte Ihnen helfen, ähnliche Probleme zu überwinden!

Benj
quelle
7

Wenn Sie mehrere Ziele haben, bei denen zwei oder mehr Ziele Dateien mit demselben Namen haben, überprüfen Sie die Zielmitgliedschaft dieser Dateien im Dateiinspektor. Der Fehler tritt auf, wenn mehrere Instanzen der gleichnamigen Datei die Zielmitgliedschaft für dasselbe Ziel festgelegt haben.

Adam Bardon
quelle
6

Der Wechsel zum Legacy-Build-System hat das Problem für mich behoben

Charlton Provatas
quelle
4

Da dieses Problem Dutzende möglicher Lösungen zu haben scheint und die Grundursache sehr vage sein könnte, werde ich meine Situation in den Ring werfen. Die Hälfte meiner Pods versagte mit einem CompileSwiftSourceFehler, aber nur im Archiv. Ich konnte immer noch gut für Gerät und Simulator bauen. Ich habe viele (wenn nicht alle) der hier vorgeschlagenen Lösungen ohne Glück ausprobiert. Einer der Pods hatte vor dem CompileSwiftSourceFehler einen etwas anderen Fehler , daher habe ich versucht, diesen einzelnen Pod zu aktualisieren und zu reparieren. Es war die CacheBibliothek für iOS, die seit einiger Zeit nicht mehr aktualisiert wurde. Es gab eine Abzweigung, die das Problem mit der Aktualisierung auf Xcode 10.2 löste, auf die ich aktualisieren konnte, und danach haben sich alle anderen Probleme von selbst erledigt. Suchen Sie also nach einem einzigen Ausreißer in Ihren Pods, wenn einige Fehler auftreten, und beginnen Sie dort.

Steve E.
quelle
3

In meinem Fall war ich ein sauberer Build-Ordner und habe meinen Mac neu gestartet, dann funktioniert es.

Md. Ibrahim
quelle
3

Ich hatte den JSONwebtokenPod installiert und das verursachte Probleme. Ich musste den CommonCrypto-Ordner löschen, der sich im JSONWebtokenPod-Ordner befindet. Hier ist ein -> Link <-, der das Problem erklärt. Dies begann in Xcode 10.

K-2SO
quelle
2

In meinem Fall habe ich zu komplizierte Initialisierungen innerhalb einer Klassenerweiterung verwendet. Es hat plötzlich meinen Körper gebrochen.

class MyClass { }
extension MyClass {
static var  var1 = "", var2 = "", var3 = "", var4 = "", ...., var20 = ""
}

Aufgelöst:

class MyClass { }
    extension MyClass {
    static var var1 = "",
    static var var2 = "",
    static var var3 = ""
    static var var4 = "", ...., 
    static var var20 = ""
    }
Vyacheslav
quelle
2

In meinem Fall war es ein leerer Anlagenkatalog, als ich ihn löschte, war alles wieder in Ordnung.

Jaroslaw Sarnitskiy
quelle
2

Der Befehl CompileSwift ist mit einem Exit-Code ungleich Null fehlgeschlagen

Dieser Fehler tritt auf, wenn Sie Ihren Code von Xcode 9 auf Xcode 10+ migrieren. Aufgrund eines Klassennamens besteht ein Konflikt mit vorhandenen Apple-Klassen. Zum Beispiel: Status, Ereignis usw.

  1. Ändern Sie also zuerst den Klassen- / Strukturnamen, falls in Ihrem Code vorhanden, wie "State" in "StateDetail".

  2. Wenn Info.plist zum Ziel hinzugefügt wird, entfernen Sie das Häkchen , damit das App-Bundle nicht kopiert wird (letzter Xcode10-Sicherheitsgrund).

    • Wählen Sie die Datei Info.plist aus und deaktivieren Sie sie im Identitätsinspektor auf der rechten Seite unter " Zielmitgliedschaft "

Und wieder Code bauen !!!

Sandip Patel - SM
quelle
2

In meinem Fall bestand das Problem darin, dass ich dem viewController im Storyboard eine .swift-Klasse zugewiesen habe, während das Projekt Ziel C war.

Mahdi
quelle
2

Ich habe viele der hier diskutierten Optionen ausprobiert.

  • Pods löschen und neu installieren
  • Bereinigungsordner bereinigen
  • Abgeleitete Daten löschen
  • Fügen Sie SWIFT_ENABLE_BATCH_MODE hinzu und setzen Sie den Wert auf NO
  • Xcode neu starten und neu kompilieren
  • IMac neu starten und neu kompilieren
  • Stellen Sie den Kompilierungsmodus auf Inkrementell ein
  • Geänderte Build-Einstellungen: SWIFT_COMPILATION_MODE = Singlefile und SWIFT_OPTIMIZATION_LEVEL = "-O"

Nichts hat geklappt. Ich verwende Xcode Version 11.0 Beta (11M336w).

Schließlich habe ich eine neue Kopie heruntergeladen und die zuvor installierte ersetzt. Es war genau die gleiche Version. Das hat funktioniert.

GIJoeCodes
quelle
2

Ich habe diesen Fehler erhalten, als ich versucht habe, meine Komponententests in einem Submodul auszuführen. Was ich getan habe ist:

Ändern Sie den Simulator => Reinigen Sie das Projekt => Erstellen Sie das Projekt => Führen Sie Unit-Tests durch .

Danach liefen meine Unit-Tests ohne Probleme.

Udaya Sri
quelle
1

Ich habe das Problem so und meine Lösung besteht darin, ein wenig in den Build-Einstellungen zu ändern:

SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OPTIMIZATION_LEVEL = "-O";

es funktioniert für mich

Daniel Le
quelle
1

Okay, ich hatte das gleiche Problem mit Xcode 10. Normalerweise verwende ich für jede Ansicht ein Storyboard. Wenn jemand hilft, ist es einfacher, Code einzufalten. Ich musste eine der Ansichten auf einem Storyboard zum Controller für die anfängliche Ansicht machen.

jimistephen
quelle
Bitte erklären Sie dies weiter, ich bekomme diese Antwort nicht vollständig
Mohsin Khubaib Ahmed
Sie können also mehr als ein Storyboard haben, und in einer Multiview-App verwende ich in jeder Ansicht ein Storyboard. Aus Gründen der Modularität und auf diese Weise ist es viel einfacher, diese Änderungen zu übernehmen, wenn jemand an einem anderen Teil der App arbeitet. Auf den ViewControllern gibt es eine Option, um es zum anfänglichen View-Controller für das Storyboard zu machen, das beim Aufrufen geladen wird, storyboard.loadInitialView() und auf einem Storyboard wurde diese Option nicht angeklickt, und als ich darauf geklickt habe, ist sie verschwunden.
Jimistephen
1

In meinem Fall wurde versehentlich eine Datei in eine vorhandene Datei in einem anderen Ordner (Gruppe) umbenannt. Benennen Sie sie einfach in das um, was sie war, und der Fehler verschwand

Seyyed Muhammad Amir Mehrnam
quelle
1

Die Ziele sollten mit verwandten Daten wie Appicon angegeben werden

user10375102
quelle
1

Für mich war das Problem, dass ich nicht auf mein Podfile gesetzt habe use_frameworks!. Ich kommentiere diese Zeile einfach aus und laufe wieder pod installauf dem Terminal. Und es wurde behoben.

Es wurde kommentiert, da die App vollständig auf Objective-C erstellt wurde. Da die App jetzt Swift verwendet, musste ich diese Änderung im Podfile vornehmen

Luis Felipe
quelle
1

Ich hatte den gleichen Fehler Neustart von Xcode und Neukompilierung Das Problem wurde für mich behoben.

Bildunterschrift Newt
quelle
1

In meinem Fall ging es darum, eine Datei mit dem Namen Location zu haben. Nach einigem Graben finde ich heraus, dass es darum ging, zwei Dateien mit demselben Namen zu haben (seltsam). Weil ich es jedoch nicht gelöst habe, indem ich die Datei entfernt und eine andere Datei mit einem anderen Namen hinzugefügt habe.

filenames are used to distinguish private declarations with the same name
SinaMN75
quelle
0

Was mir geholfen zu setzen , Compilation Modeum Incrementalfür alle Konfigurationen in Target's Build Settings. Im Whole moduleKompilierungsmodus habe ich Fehler bekommen. Diese Einstellung verlangsamte jedoch die Erstellung des Projekts.

Denis Kutlubaev
quelle
0

Wenn bei einer neuen MacOS-Version ein solcher Fehler auftritt.

xcrun: Fehler: Ungültiger aktiver Entwicklerpfad (/ Library / Developer / CommandLineTools), xcrun fehlt unter: / Library / Developer / CommandLineTools / usr / bin / xcrun

Dies bedeutet, dass Sie die XCode-Befehlszeile installieren, ein Terminal öffnen und diesen Befehl ausführen müssen:

$ xcode-select --install

Asif vora
quelle
0

Was diese Fehler für mich verursachte (ich bekam 8+ für einige meiner Cocoapods), war das Beheben von Laufzeit-Build-Problemen in allen Pods.

Kevin R.
quelle
0

Gehen Sie zu den Build-Einstellungen Ihres Projekts, fügen Sie eine benutzerdefinierte Einstellung mit dem Namen hinzu SWIFT_ENABLE_BATCH_MODEund setzen Sie den Wert auf NO.

HenriqueVelloso
quelle
Das hat bei mir funktioniert, jemand hat abgelehnt, und Sie sollten nicht abstimmen, nur weil es bei Ihnen nicht funktioniert hat. Es ist anscheinend keine gültige Lösung für alle mit diesem Problem (vielleicht sollte das beachtet werden), aber es hat das Problem, das mich seit ein paar Jahren verfolgt, seit ich SPM benutze, absolut behoben.
Ben Stahl
Wichtig ist, dass es nur für Run (Debug) Build behoben wurde. Ich erhalte immer noch die Fehler mit Archive Build. Dies ist ein guter Schritt, aber irgendwo in den Einstellungen ist noch etwas kaputt (passiert bei mehreren Projekten mit SPM in Xcode 11).
Ben Stahl
0

Ich habe ein ähnliches Problem gehabt. Ich habe getan

  • sauberes Projekt - hat nicht funktioniert
  • Abgeleiteten Datenordner entfernen - hat nicht funktioniert
  • Ändern Sie das Build-System in Legacy Build Settings- hat nicht funktioniert
  • Starten Sie XCode neu - hat nicht funktioniert
  • Kommentieren Sie einige meiner Codes, eine typedef NS_ENUMin .h-Datei und enumsbezogene Arbeiten. Erstellen Sie das System und den gezeigten Erfolg. Als nächstes entfernen Sie den Kommentar aus dem Code und erstellen ihn erneut - Magisch funktioniert
Ankur Lahiry
quelle