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?
Sunting: 15 April 2020
Apple baru saja merilis Xcode 11.4.1
swift
xcode
segmentation-fault
Artur Marchetto
sumber
sumber
Jawaban:
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.
sumber
Bagi saya membantu untuk menemukan masalah ketika saya mengatur dalam membangun pengaturan
SWIFT_COMPILATION_MODE
untukwholemodule
. 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.
sumber
Dalam kasus saya, saya mengalami kesalahan dengan pod Eureka
Dalam file Pods saya telah menyediakan versi terbaru:
Juga
SWIFT_COMPILATION_MODE
diatur kewholemodule
.sumber
Saya berubah
#imageLiteral(resourceName: "image_name")
menjadiUIImage(imageLiteralResourceName: "image_name")
sumber
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:Lalu saya menggunakan pengubah itu sedikit seperti panggilan asli, seperti ini:
Ini berarti Anda masih bisa menanamkan dalam scrollView tetapi kesalahan Seg 11 hilang.
sumber
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: '(
sumber
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()
danalwaysBounceVertical()
pengubah padaVStack
yang bukan bagian dariList
:Menghapus pengubah ini memungkinkan arsip rilis berhasil diselesaikan.
sumber