wake-up-neo.com

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

Guten Tag,

Nach der Aktualisierung auf die aktuellste Version von Xcode (Version 10.0) kann das Projekt nicht erstellen, da es Fehler bezüglich des Befehls "Befehl CompileSwift mit einem Exit-Code ungleich Null" gefunden hat.

Wie löse ich diese Fehler? Sie erscheinen in den meisten Pods (ich verwende CocoaPods), die ich in meinem Projekt verwende.

Ich habe versucht, die Pod-Version und die Pods auf die neueste verfügbare Version zu aktualisieren, aber das Problem ist immer noch vorhanden.

Ich habe viel im Internet gesucht und es gibt sehr wenige Informationen zu diesem Thema.

Grüße.

52
Jordi Gámez

Momentan funktioniert mein Build ..__ Hier sind die Schritte, die ich bis zum endgültigen Ablauf versucht habe:

  1. Suchen Sie im gesamten Projekt nach dem Word CommonCrypto.
  2. Wenn Sie einen Pod mit diesem Header-Import haben, entfernen Sie diesen Pod aus der Pod-Datei und führen Sie eine Pod-Installation durch.
  3. Reinige und baue das Projekt.
  4. Fügen Sie den Pod erneut zur Pod-Datei hinzu und führen Sie eine Pod-Installation durch.
  5. Reinigen und erstellen Sie das Projekt erneut mit einem echten Gerät, wenn möglich.

Wenn Sie diesen Pod nicht haben, können Sie es vielleicht mit den alten Schritten tun, die Sie in Ihrem Projekt finden.

Hinzugefügte Informationen: Wenn Sie einen Codefehler in einem Pod haben, müssen Sie zuerst das Codefehler lösen und dann das Projekt erneut kompilieren.

Ich werde die Änderungen in meinem Projekt.pbxproj kopieren. Ich weiß, dass es nicht sehr hilfreich ist, aber es ist das einzige, was sich beim Git-Unterschied geändert hat:

Removed: BDC9821B1E9BD1B600ADE0EF /* (null) in Sources */ = {isa = PBXBuildFile; };
Added:   BDC9821B1E9BD1B600ADE0EF /* BuildFile in Sources */ = {isa = PBXBuildFile; };

Ich hoffe das kann helfen,

Grüße.

24
Jordi Gámez

Für mich funktioniert nur die Reinigung des Projekts mit ShiftCommandK & OptionShiftCommandK.

23
Mahgol Fa

Ich hatte dieses Problem und die Einstellung des Kompilierungsmodus für das Projekt von Incremental zu Whole Module wurde für mich behoben.

 enter image description here

11

Bereinigen Sie die Anwendung und versuchen Sie, sie mit erneut zu erstellen ShiftOptionCommandK dann CommandB.

10
Mohamad

Mein Problem war, dass ich aufgrund des Fehlens eines nativen Switf CommonCrypto einen Überbrückungsheader und ein Ziel verwendet hatte, das mit etwas Magie in den Build aufgenommen wurde. Da CommonCrypto jetzt native ist, habe ich das Problem durch Entfernen des Ziels und des Imports gelöst und stattdessen einen Import-CommonCrypto hinzugefügt, an dem ich es verwendet habe. 

7
Omid Ariyan

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

Um es kurz zu machen, 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 die folgenden, an anderer Stelle vorgeschlagenen Methoden ausprobiert (Wiederherstellen, Xcode beenden, Bereinigen und Wiederherstellen, Abgeleitete Datendateien löschen). Keiner von ihnen hat gearbeitet.

Nachdem ich die benutzerdefinierte Einstellung für den Builder per Artikel hinzugefügt hatte, teilte mir Swift den wahren Fehler mit. In meinem Fall fehlte es}, aber es könnte eine Anzahl von Problemen geben.

6
cdeerinck

Sie lesen wahrscheinlich nicht die gesamte Fehlermeldung. Wenn Sie über der Meldung "Befehl CompileSwift mit einem Exit-Code ungleich Null fehlgeschlagen" suchen, sollten Sie einige Angaben wie diese finden:

 enter image description here

In diesem Beispiel hatte ich zwei Dateien mit demselben Namen. Nachdem ich es repariert hatte, funktionierte alles so, wie es sollte.

5
Samy

Ich habe folgendes gemacht und es funktioniert wie Charme:

  • Öffnen Sie die Xcode-Einstellungen (Command,)
  • Wechseln Sie zur Registerkarte Locationsname__
  • Klicken Sie auf den kleinen grauen Pfeil, der den URL-Pfad für Derived Data anzeigt.
  • Das Finder-Fenster öffnet sich und zeigt die folgenden Ordner an:

    • DerivedDataname__
    • Archivesname__
    • iOS DeviceSupport
    • UserDataname__
    • DocumentationCachename__
    • iOS Device Logs
  • Beenden Sie Xcode

  • Löschen Sie den Ordner DerivedData(er enthält nur einen Cache aus früheren Builds).
  • Starten Sie Xcode neu
3
Mile Dev

Lassen Sie mich meine Erfahrungen mit diesem Problembehebungsprozess teilen.

Ziel öffnen -> Bauphasen -> Ressourcen kopieren und info.plist entfernen.

Hinweis: Wenn Sie Erweiterungen verwenden, entfernen Sie die info.plist dieser Erweiterung aus den Targets.

Ich hoffe es hilft.

2
Gurunathan

in meinem Fall lag das Problem daran, dass die Watchkit-Erweiterung auf Swift 3 gesetzt wurde, während das Ziel des Hauptprojekts auf Swift 4.2 gesetzt wurde

2
Itay Bianco

Ich versuchte

  • Xcode schließen und wieder öffnen
  • Build-Ordner reinigen
  • pod install --repo-update ausführen

und all das hat das Problem immer noch nicht gelöst. Neustart des Mac hat den Trick gemacht

2
codeherk

ERROR = Der Befehl CompileSwiftSources schlug mit einem Exit-Code ungleich Null fehl

In meinem Fall Als ich diesen Fehler gefunden habe, wurde ich beim Kompilieren beengt. Aber wenn ich einige verwandte Problemantworten sehe. Ich habe eine Duplizierungsdatei in meinem Projekt gefunden. Wo derselbe viewController als Klassendatei vorhanden war. Als ich es merkte, änderte ich seinen Namen in einen neuen Namen. Und ja, die Dinge haben sich geändert !!! 

1
Harsh Vyas

Die Klassendeklaration wird das Problem sein. Überprüfen Sie doppelte Klasse und Build.

1

Ich habe das gesamte Web durchsucht, aber ich konnte keine Lösung für dieses Problem finden. Es ist mir gelungen, den Pfad "Common Crypto" im Abschnitt IMPORT Paths in Build-Einstellungen zu entfernen. Das Problem scheint zu sein, dass "Common Crypto" jetzt in der Basis von ios 12 sdk vorhanden ist.

So":

Entfernen Sie einfach den Pfad für die Datei "Common Crypto" in den Build-Einstellungen. Das Projekt wird wie ein Zauber aussehen! :)

1
sajede Nouri

In meinem Fall gab es einen doppelten Eintrag für ein Framework in Input Files von Carthage Framework Abschnitt in Build Phases

1
niks

Durch Ausführen von pod install --repo-update und Schließen und erneutem Öffnen von x-code wurde dieses Problem auf allen Pods behoben, die diesen Fehler aufwiesen.

1
RickS

Hier ist die Lösung: - Gehen Sie zu den Build-Einstellungen - Suchen Sie nach Swift_COMPILATION_MODE - Wenn dies "Gesamtes Modul" für die Release-Konfiguration ist, ändern Sie es in "Inkrementell" . - Jetzt archivieren.

Wenn Sie die Einstellung in "Inkremental" ändern, ist der Vorgang erfolgreich.

1
Ankit Saini

Meines war ein Namensabstandsproblem. Ich hatte zwei Dateien mit demselben Namen. Benannte sie einfach um und es wurde gelöst. 

Ich muss immer zuerst das Kästchen mit dem Namen "dummes Ich" ankreuzen, bevor es anderswo aussieht. :)

1
PruitIgoe

In der Fehlermeldung stand für mich, dass ich zu viele Simulatordateien geöffnet hatte, um Swift zu erstellen. Als ich den Simulator verließ und wieder baute, funktionierte alles.

1
mef27

Diese Frage nur hinzufügen. Mein Problem hatte nichts mit CommonCrypto zu tun. Es wurde eine neue Anwendung für eine einzelne App erstellt und getestet. Der Compiler beschwerte sich über Swift 4.2

Das Ändern der Sprache für Swift auf Version 4.0 in den Build-Einstellungen hat das Problem behoben. Nicht sicher, ob dies ein Fehler ist.

1
Alexander

Ich bin auch auf das gleiche Problem gestoßen und habe das getan, was @cdeerinck vorgeschlagen hat, und auf den folgenden link gekommen, der vorschlug, dem Build Settings eine benutzerdefinierte Variable hinzuzufügen, um den Stapelmodus zu deaktivieren, dh eine neue benutzerdefinierte Variable hinzuzufügen mit dem Namen Swift_ENABLE_BATCH_MODE und auf NO gesetzt, konnte ich mehr Einblick in das Problem bekommen und erfuhr, dass der Fehler in einem Framework mit CommonCrypto lag, das hinzugefügt wurde es (von mir), aber seit Xcode 10 wird es nativ als Teil von Swift (nur für Apple-Plattformen) exponiert, und das Hinzufügen (oder das Vorhandensein der vorherigen Version) verursachte eine Namenskollision und folglich wurde es geworfen der Fehler. Weitere Informationen finden Sie unter diesem Link , der das Problem genauer erklärt.

1
Sudhanshu Vohra

Ich habe das gleiche Problem und meine Lösung ist etwas in den Build-Einstellungen geändert

Swift_COMPILATION_MODE = singlefile;
Swift_OPTIMIZATION_LEVEL = "-O";
1
Daniel Le

Ich habe dies zufällig seit Xcode 10. Ich denke, es tritt auf, wenn ich während des Baubeginns etwas im Code ändere .Der nächste Build funktioniert jedes Mal.

1
fl034

Es scheint, dass dies ein ziemlich vage Fehler ist, also werde ich mitteilen, was ich getan habe, um das Problem zu beheben, als ich darauf stieß: 

Mit Xcode 10.1 und Swift 4.2 habe ich alle Vorschläge ausprobiert, aber keiner von ihnen funktionierte für mich. Dann erkannte ich, dass eine Abhängigkeit, die ich verwendete, nicht mit Swift 4.2 kompatibel war, und dass ich diesen Fehler bei anderen Pods bekam. Um das Problem zu beheben, musste ich die Pod also zwingen, Swift 4.0 zu verwenden, indem ich sie am Ende meiner Podfile setzte: 

post_install do |installer|
installer.pods_project.targets.each do |target|
    if ['TKRadarChart'].include? target.name
        target.build_configurations.each do |config|
            config.build_settings['Swift_VERSION'] = '4.0'
        end
    end
end

ende

0
Tyler Kuntz