Ich habe gerade Xcode auf 11.4 aktualisiert und beim Archivieren eines Projekts wird "Segmentierungsfehler 11" angezeigt.
Dieses Projekt würde mit Xcode 11.3.1 archiviert, aber jetzt nicht.
Ist sonst noch jemand auf das gleiche Problem gestoßen?
Bearbeiten: 15. April 2020
Apple hat gerade Xcode 11.4.1 veröffentlicht
swift
xcode
segmentation-fault
Artur Marchetto
quelle
quelle
Antworten:
Ich bin auf das gleiche Problem gestoßen. Die Archivierung verwendet die Release-Gebäudekonfiguration, daher habe ich jede Compilereinstellung durchgesehen, um herauszufinden, welche der Unterschiede zu diesen Segmentierungsfehlern führen.
In meinem Fall verschwindet das Problem, wenn ich die Einstellung Testbarkeit aktivieren für Freigabe auf JA ändere .
Nein, ich habe keine Ahnung, welche Nachteile dies im Archiv oder im Release-Build hat oder warum diese spezielle Einstellung das Problem lindert, aber am Ende des Tages habe ich ein Projekt, das ein Jahr gedauert hat, um dieses Stadium zu erreichen und ich bin sehr daran interessiert, dies an interne Betatester weiterzuleiten, also werde ich dies durch einen Testflug einreichen und sehen, wie es mir geht.
Mein Gefühl ist, dass dies definitiv ein Apple-Fehler ist, da der Compiler überhaupt kein Seg-Fehler sein sollte. Die Tatsache, dass es unter der Debug-Konfiguration kompiliert wird, unterstützt dies. Mein Projekt ist so groß, dass ich nicht weiß, wie ich es reproduzieren soll, um einen Fehler einzureichen, aber ich werde sehen, ob ich in den Apple-Foren eine Antwort erhalten kann.
quelle
Für mich hat geholfen, das Problem zu finden, als ich in den Build-Einstellungen das
SWIFT_COMPILATION_MODE
zu gesetzt habewholemodule
. Dann bekam nach dem Kompilieren ein spezifischerer Fehler, der zu einer Klassenfunktion führte, die den Fehler verursachte. Danach änderte es wieder so wie es war.Vielleicht hilft es dir auch.
In meinem Fall wurde ein ternärer Operator für den Init-Eingabeparametersatz verwendet. Scheint, als würde Swift 5.2 es nicht mehr unterstützen.
quelle
In meinem Fall hatte ich einen Fehler mit Eureka Pod
In der Pods-Datei habe ich die neueste Version bereitgestellt:
Auch auf set
SWIFT_COMPILATION_MODE
gesetztwholemodule
.quelle
Ich wechselte
#imageLiteral(resourceName: "image_name")
zuUIImage(imageLiteralResourceName: "image_name")
quelle
Wie bei anderen Respondern gab es in den Fehlermeldungen hier ein SwiftUI-Problem (unter Verwendung von Xcode 11.4). In meinem Fall
.embedInScrollView()
verursachte die Verwendung von den Erstellungsfehler. Durch Deaktivieren dieser Anrufe wurde das Problem behoben..embedInScrollView()
Um dieses Problem zu umgehen, habe ich einen ViewModifier wie folgt eingefügt:Dann benutze ich diesen Modifikator ein bisschen wie den ursprünglichen Aufruf, wie folgt:
Dies bedeutet, dass Sie weiterhin in eine scrollView einbetten können, die Seg 11-Fehler jedoch behoben werden.
quelle
Leider hat die Enable Testability- Lösung bei mir nicht funktioniert.
Eine vorübergehende Problemumgehung (bis Apple das Problem mit dem Xcode 11.4 Swift-Compiler behebt) besteht darin, die Optimierungsstufe für die Veröffentlichung auf dem fehlgeschlagenen Ziel auf " Keine Optimierung " zu setzen (
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
). Es funktioniert in unserem Projekt, das in mehrere Frameworks unterteilt ist. Nur eines muss eingestellt werden-Onone
.In der Apple-Dokumentation wird jedoch darum gebeten, Ihren Code nicht mit dieser Flagge zu versenden . Es ist für die Entwicklung vorgesehen, führt nur minimale Optimierungen durch und bewahrt alle Debug-Informationen.
Ich denke wir müssen warten: '(
quelle
Ich habe diese Ausnahme erhalten, und die Archivprotokolle haben mir geholfen zu verstehen, dass sie sich in einer bestimmten SwiftUI-Datei befinden. Durch den Prozess der Eliminierung stellte sich heraus, dass ich verlassen hatte
contentInsets()
undalwaysBounceVertical()
Modifikatoren auf einemVStack
, der nicht Teil einesList
:Durch das Entfernen dieser Modifikatoren konnte das Release-Archiv erfolgreich abgeschlossen werden.
quelle