Xcode 11.4 - Archivierungsprojekt - Segmentierungsfehler 11

12

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?

Geben Sie hier die Bildbeschreibung ein

Bearbeiten: 15. April 2020

Apple hat gerade Xcode 11.4.1 veröffentlicht

Artur Marchetto
quelle
Schauen Sie sich diesen Beitrag an: stackoverflow.com/a/42168123/2583679
Tom
3
@ Tom danke, aber das behebt es nicht. Ich bin mir ziemlich sicher, dass es ein Apple-Fehler ist
Artur Marchetto

Antworten:

11

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.

David Monagle
quelle
In Xcode 11.4.1 ist das gleiche Problem aufgetreten. Das Ändern dieser Einstellung hat auch bei mir funktioniert. Die Dokumente sagen, dass dieses Flag damit zu tun hat, private Schnittstellen zugänglich zu machen, also gibt es vielleicht etwas ... Wenn diese Einstellung aktiviert ist, wird das Produkt mit Optionen erstellt, die für die Ausführung automatisierter Tests geeignet sind, z. B. die Bereitstellung privater Schnittstellen für die Tests. Dies kann dazu führen, dass Tests langsamer ausgeführt werden als ohne aktivierte Testbarkeit.
keegan3d
5

Für mich hat geholfen, das Problem zu finden, als ich in den Build-Einstellungen das SWIFT_COMPILATION_MODEzu gesetzt habe wholemodule. 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.

// Leads to error with Xcode 11.4
init(value: UIColor = Constants.staticBoolean ? .white : .green)
Samps
quelle
2
Ich danke dir sehr!! du hast meinen Tag gerettet!!
Nomnom
3
Das behebt auch meinen Build-Time-Fehler. Ein ternärer Operator im Standardparameter ist der Schuldige. Hoffe, Apple behebt den Fehler bald.
Dao Xiang
2
Ich reproduziere nicht mit Swift Master Branch github.com/apple/swift/tree/master . Also vielleicht schon behoben.
Cœur
1

In meinem Fall hatte ich einen Fehler mit Eureka Pod

Segmentation fault: 11 (in target 'Eureka' from project 'Pods')

In der Pods-Datei habe ich die neueste Version bereitgestellt:

pod 'Eureka', '~> 5.2.1'

Auch auf set SWIFT_COMPILATION_MODEgesetzt wholemodule.

Landonandrey
quelle
0

Ich wechselte #imageLiteral(resourceName: "image_name")zuUIImage(imageLiteralResourceName: "image_name")

susemi99
quelle
0

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:

public struct WrapInScrollView: ViewModifier {
    public func body(content: Content) -> some View {
        content
            .embedInScrollView()
    }

    public init() {}
}

Dann benutze ich diesen Modifikator ein bisschen wie den ursprünglichen Aufruf, wie folgt:

.modifier(WrapInScrollView())

Dies bedeutet, dass Sie weiterhin in eine scrollView einbetten können, die Seg 11-Fehler jedoch behoben werden.

Luke Smith
quelle
0

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: '(

jc_35
quelle
-1

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()und alwaysBounceVertical()Modifikatoren auf einem VStack, der nicht Teil eines List:

VStack {
    // more stuff
}
.contentInsets(UIEdgeInsets(top: 20, left: 0, bottom: 0, right: 0))
.alwaysBounceVertical()

Durch das Entfernen dieser Modifikatoren konnte das Release-Archiv erfolgreich abgeschlossen werden.

Sam Mueller
quelle