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.
Momentan funktioniert mein Build ..__ Hier sind die Schritte, die ich bis zum endgültigen Ablauf versucht habe:
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.
Für mich funktioniert nur die Reinigung des Projekts mit ShiftCommandK & OptionShiftCommandK.
Bereinigen Sie die Anwendung und versuchen Sie, sie mit erneut zu erstellen ShiftOptionCommandK dann CommandB.
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.
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.
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:
In diesem Beispiel hatte ich zwei Dateien mit demselben Namen. Nachdem ich es repariert hatte, funktionierte alles so, wie es sollte.
Ich habe folgendes gemacht und es funktioniert wie Charme:
Locations
name__Derived Data
anzeigt.Das Finder-Fenster öffnet sich und zeigt die folgenden Ordner an:
DerivedData
name__Archives
name__iOS DeviceSupport
UserData
name__DocumentationCache
name__iOS Device Logs
Beenden Sie Xcode
DerivedData
(er enthält nur einen Cache aus früheren Builds).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.
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
Ich versuchte
pod install --repo-update
ausführenund all das hat das Problem immer noch nicht gelöst. Neustart des Mac hat den Trick gemacht .
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 !!!
Die Klassendeklaration wird das Problem sein. Überprüfen Sie doppelte Klasse und Build.
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! :)
In meinem Fall gab es einen doppelten Eintrag für ein Framework in Input Files von Carthage Framework Abschnitt in Build Phases
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.
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.
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. :)
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.
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.
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.
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";
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.
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