Xcode 11.4 - Progetto di archiviazione - Errore di segmentazione 11


12

Ho appena aggiornato Xcode a 11.4 e durante l'archiviazione di un progetto mi mostra "Segmentation Fault 11"

Questo progetto verrà archiviato con Xcode 11.3.1 ma ora non lo fa.

Qualcun altro ha riscontrato lo stesso problema?

inserisci qui la descrizione dell'immagine

Modifica: 15 aprile 2020

Apple ha appena rilasciato Xcode 11.4.1


Dai un'occhiata a questo post: stackoverflow.com/a/42168123/2583679
Tom

3
@Tom grazie, tuttavia, ciò non risolve .. Sono abbastanza sicuro che sia un bug di Apple
Artur Marchetto,

Risposte:


11

Ho riscontrato lo stesso problema. L'archiviazione utilizza la configurazione di Release building, quindi ho esaminato tutte le impostazioni del compilatore per capire quale delle differenze porta a questi errori di segmentazione.

Nel mio caso il problema scompare quando cambio l'impostazione Abilita testabilità su per il rilascio .

No, non ho idea di quali siano gli svantaggi di questo archivio o della versione di rilascio, o in effetti perché questa particolare impostazione allevia il problema, ma alla fine, ho un progetto che ha impiegato un anno per arrivare a questo stadio e sono molto desideroso di farlo arrivare ai beta tester interni, quindi lo invierò attraverso il volo di prova e vedrò come procederò.

La mia sensazione è che questo sia sicuramente un bug di Apple, poiché il compilatore non dovrebbe essere affatto Seg Segault. Il fatto che si compila sotto la configurazione di Debug fornisce supporto a questo. Il mio progetto è così grande che non so come riprodurlo per inviare un bug, ma vedrò se posso ottenere qualche risposta sui forum di Apple.


Si è verificato lo stesso problema in Xcode 11.4.1, cambiando questa impostazione ha funzionato anche per me. I documenti affermano che questo flag ha a che fare con l'accessibilità delle interfacce private, quindi forse c'è qualcosa lì ... Quando questa impostazione è attivata, il prodotto verrà creato con opzioni appropriate per l'esecuzione di test automatizzati, come rendere accessibili le interfacce private al test. Ciò può comportare l'esecuzione di test più lenti di quanto farebbero senza la testabilità abilitata.
keegan3d

5

Per mi ha aiutato a trovare il problema quando ho impostato nelle impostazioni di generazione della SWIFT_COMPILATION_MODEa wholemodule. Quindi dopo la compilazione ha ottenuto un errore più specifico che ha portato alla funzione di classe che ha causato l'errore. Successivamente lo ha cambiato di nuovo com'era.

Forse ti aiuta anche.

Nel mio caso, è stato utilizzato un operatore ternario per il set di parametri di input di init. Sembra che Swift 5.2 non lo supporti più.

// Leads to error with Xcode 11.4
init(value: UIColor = Constants.staticBoolean ? .white : .green)

2
Grazie mille!! mi hai reso felice !!
nomnom

3
Ciò risolve anche il mio errore di tempo di compilazione. Un operatore ternario nel parametro predefinito è il colpevole. Spero che Apple risolva presto il bug.
Dao Xiang

2
Non sto riproducendo con il ramo principale di Swift github.com/apple/swift/tree/master . Quindi forse già risolto.
Cœur il

1

Nel mio caso ho avuto un errore con il pod Eureka

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

Nel file Pod ho fornito l'ultima versione:

pod 'Eureka', '~> 5.2.1'

Impostare anche SWIFT_COMPILATION_MODEsu wholemodule.


0

Ho cambiato #imageLiteral(resourceName: "image_name")inUIImage(imageLiteralResourceName: "image_name")


0

Come altri rispondenti, c'era un problema SwiftUI sepolto nei messaggi di errore qui (usando Xcode 11.4). Nel mio caso, l'uso di .embedInScrollView()stava causando l'errore di compilazione. La disabilitazione di quelle chiamate l'ha risolto. Come soluzione alternativa, ho inserito .embedInScrollView()un ViewModifier, in questo modo:

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

    public init() {}
}

Quindi uso quel modificatore un po 'come la chiamata originale, in questo modo:

.modifier(WrapInScrollView())

Ciò significa che puoi ancora incorporare in scrollView ma gli errori di Seg 11 scompaiono.


0

Sfortunatamente, Abilita testabilità soluzione non ha funzionato per me.

Una soluzione temporanea (fino a quando Apple non risolverà il problema del compilatore Xcode 11.4 Swift) consiste nel trasformare il livello di ottimizzazione in " Nessuna ottimizzazione " per il rilascio, sulla destinazione che ha esito negativo ( SWIFT_OPTIMIZATION_LEVEL = "-Onone";). Funziona sul nostro progetto, che è suddiviso in più framework. Solo uno deve essere impostato su -Onone.

Ma la documentazione di Apple chiede di non spedire il tuo codice con questo flag . È per lo sviluppo, esegue ottimizzazioni minime e conserva tutte le informazioni di debug.

Penso che dobbiamo aspettare: '(


-1

Stavo ricevendo questa eccezione e i registri dell'archivio mi hanno aiutato a capire che si trovava all'interno di un particolare file SwiftUI. Con il processo di eliminazione, risulta che avevo lasciato contentInsets()e alwaysBounceVertical()modificatori su aVStack che non faceva parte di un List:

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

La rimozione di questi modificatori ha permesso di completare correttamente l'archivio delle versioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.