Xcode 11.4 - Proyek pengarsipan - Kesalahan Segmentasi 11

12

Saya Baru saja memperbarui Xcode ke 11,4 dan ketika pengarsipan proyek itu menunjukkan kepada saya 'Segmentasi Kesalahan 11'

Proyek ini akan diarsipkan dengan Xcode 11.3.1 tetapi sekarang tidak ..

Adakah orang lain yang mengalami masalah yang sama?

masukkan deskripsi gambar di sini

Sunting: 15 April 2020

Apple baru saja merilis Xcode 11.4.1

Artur Marchetto
sumber
Lihat posting ini: stackoverflow.com/a/42168123/2583679
Tom
3
@ Tom terima kasih, namun itu tidak memperbaikinya .. saya cukup yakin ini adalah bug Apple
Artur Marchetto

Jawaban:

11

Saya telah mengalami masalah yang sama. Pengarsipan menggunakan konfigurasi bangunan rilis jadi saya pergi melalui setiap pengaturan kompiler untuk mencari tahu mana dari perbedaan yang menyebabkan kesalahan Segmentasi ini.

Dalam kasus saya, masalahnya hilang ketika saya mengubah pengaturan Aktifkan Testability ke YES for Release .

Tidak, saya tidak tahu apa kerugiannya dalam arsip atau rilis ini, atau memang mengapa pengaturan khusus ini meringankan masalah, tetapi pada akhirnya, saya memiliki proyek yang perlu waktu satu tahun untuk mencapai tahap ini dan saya sangat tertarik untuk mendapatkan ini ke penguji beta internal jadi saya akan mengirimkan ini melalui penerbangan uji dan melihat bagaimana saya pergi.

Perasaan saya adalah ini jelas merupakan bug Apple, karena kompiler tidak boleh Seg Faulting sama sekali. Fakta yang dikompilasi di bawah konfigurasi Debug mendukung hal ini. Proyek saya sangat besar sehingga saya tidak tahu bagaimana mereproduksi ini untuk mengirimkan bug, tetapi saya akan melihat apakah saya bisa mendapatkan respons di Forum Apple.

David Monagle
sumber
Mengalami masalah yang sama di Xcode 11.4.1, mengubah pengaturan ini juga berhasil untuk saya. Dokumen mengatakan bahwa flag ini berkaitan dengan membuat antarmuka pribadi dapat diakses, jadi mungkin ada sesuatu di sana ... Ketika pengaturan ini diaktifkan, produk akan dibangun dengan opsi yang sesuai untuk menjalankan pengujian otomatis, seperti membuat antarmuka pribadi dapat diakses oleh tes. Hal ini dapat menyebabkan tes berjalan lebih lambat dari yang seharusnya tanpa testabilitas diaktifkan.
keegan3d
5

Bagi saya membantu untuk menemukan masalah ketika saya mengatur dalam membangun pengaturan SWIFT_COMPILATION_MODEuntuk wholemodule. Kemudian setelah kompilasi mendapatkan kesalahan yang lebih spesifik yang menyebabkan fungsi kelas yang menyebabkan kesalahan. Setelah itu mengubahnya kembali seperti semula.

Mungkin itu membantu Anda juga.

Dalam kasus saya, ada operator ternary yang digunakan untuk init input param set. Sepertinya Swift 5.2 tidak mendukungnya lagi.

// Leads to error with Xcode 11.4
init(value: UIColor = Constants.staticBoolean ? .white : .green)
Samps
sumber
2
Terima kasih banyak!! kamu membuat hariku !!
nomnom
3
Itu memperbaiki kesalahan waktu build saya juga. Operator ternary pada param standar adalah biang keladinya. Semoga Apple segera memperbaiki bug.
Dao Xiang
2
Saya tidak mereproduksi dengan cabang master Swift github.com/apple/swift/tree/master . Jadi mungkin sudah diperbaiki.
Cœur
1

Dalam kasus saya, saya mengalami kesalahan dengan pod Eureka

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

Dalam file Pods saya telah menyediakan versi terbaru:

pod 'Eureka', '~> 5.2.1'

Juga SWIFT_COMPILATION_MODEdiatur ke wholemodule.

Landonandrey
sumber
0

Saya berubah #imageLiteral(resourceName: "image_name")menjadiUIImage(imageLiteralResourceName: "image_name")

susemi99
sumber
0

Seperti responden lainnya, ada masalah SwiftUI yang terkubur dalam pesan kesalahan di sini (menggunakan Xcode 11.4). Dalam kasus saya, penggunaan .embedInScrollView()menyebabkan kesalahan build. Menonaktifkan panggilan-panggilan itu memperbaikinya. Sebagai solusinya, saya memasukkan .embedInScrollView()ViewModifier, seperti ini:

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

    public init() {}
}

Lalu saya menggunakan pengubah itu sedikit seperti panggilan asli, seperti ini:

.modifier(WrapInScrollView())

Ini berarti Anda masih bisa menanamkan dalam scrollView tetapi kesalahan Seg 11 hilang.

Luke Smith
sumber
0

Sayangnya, solusi Enable Testability tidak berfungsi untuk saya.

Solusi sementara (hingga Apple akan memperbaiki masalah kompilator Swift Xcode 11.4) adalah mengubah Level Optimasi menjadi " Tanpa Optimasi " untuk Rilis, pada target yang gagal ( SWIFT_OPTIMIZATION_LEVEL = "-Onone";). Ini bekerja pada proyek kami, yang dibagi menjadi beberapa kerangka kerja. Hanya satu yang perlu diatur -Onone.

Tetapi dokumentasi Apple meminta untuk tidak mengirimkan kode Anda dengan bendera ini . Ini untuk pengembangan, ini melakukan optimasi minimal dan mempertahankan semua informasi debug.

Saya pikir kita harus menunggu: '(

jc_35
sumber
-1

Saya menerima pengecualian ini, dan arsip log membantu saya memahami bahwa itu ada dalam file SwiftUI tertentu. Dengan proses eliminasi, ternyata saya telah pergi contentInsets()dan alwaysBounceVertical()pengubah pada VStackyang bukan bagian dari List:

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

Menghapus pengubah ini memungkinkan arsip rilis berhasil diselesaikan.

Sam Mueller
sumber