ฉันเพิ่งอัปเดต Xcode เป็น 11.4 และเมื่อเก็บถาวรโครงการจะแสดง 'การแบ่งส่วนความผิดพลาด 11'
โครงการนี้จะเก็บถาวรด้วย Xcode 11.3.1 แต่ตอนนี้มันไม่ได้ ..
มีคนอื่นที่พบปัญหาเดียวกันหรือไม่
แก้ไข: 15 เมษายน 2020
Apple เพิ่งเปิดตัว Xcode 11.4.1
ฉันเพิ่งอัปเดต Xcode เป็น 11.4 และเมื่อเก็บถาวรโครงการจะแสดง 'การแบ่งส่วนความผิดพลาด 11'
โครงการนี้จะเก็บถาวรด้วย Xcode 11.3.1 แต่ตอนนี้มันไม่ได้ ..
มีคนอื่นที่พบปัญหาเดียวกันหรือไม่
แก้ไข: 15 เมษายน 2020
Apple เพิ่งเปิดตัว Xcode 11.4.1
คำตอบ:
ฉันพบปัญหาเดียวกัน การเก็บถาวรใช้การกำหนดค่า Release building ดังนั้นฉันจึงผ่านการตั้งค่าคอมไพเลอร์ทุกครั้งเพื่อดูว่าข้อแตกต่างใดที่นำไปสู่ข้อบกพร่องของการแบ่งกลุ่มเหล่านี้
ในกรณีของฉันปัญหาจะหายไปเมื่อฉันเปลี่ยนการตั้งค่าเปิดใช้งานความสามารถในการทดสอบเป็นYESสำหรับการเปิดตัว
ไม่ฉันไม่ทราบว่าข้อเสียของสิ่งนี้อยู่ในที่เก็บถาวรหรือการสร้างการปล่อยหรือแน่นอนว่าทำไมการตั้งค่านี้ช่วยบรรเทาปัญหาได้ แต่ในตอนท้ายของวันฉันมีโครงการที่ใช้เวลาหนึ่งปีกว่าจะถึงขั้นนี้ และฉันกระตือรือร้นที่จะนำสิ่งนี้ไปยังผู้ทดสอบเบต้าภายในดังนั้นฉันจะส่งผ่านการทดสอบเที่ยวบินและดูว่าฉันจะไปอย่างไร
ความรู้สึกของฉันคือนี่เป็นข้อผิดพลาดของ Apple อย่างแน่นอนเนื่องจากคอมไพเลอร์ไม่ควร Seg Faulting เลย ความจริงมันรวบรวมภายใต้การกำหนดค่า Debug ให้ยืมสนับสนุนนี้ โครงการของฉันมีขนาดใหญ่มากจนฉันไม่รู้วิธีทำซ้ำเพื่อส่งบั๊ก แต่ฉันจะดูว่าฉันจะได้รับคำตอบบางอย่างจาก Apple Forums หรือไม่
สำหรับผมช่วยในการค้นหาปัญหาเมื่อผมตั้งในการตั้งค่าการสร้างเพื่อSWIFT_COMPILATION_MODE
wholemodule
จากนั้นหลังจากรวบรวมข้อผิดพลาดที่เฉพาะเจาะจงมากขึ้นซึ่งนำไปสู่การเรียนฟังก์ชั่นซึ่งทำให้เกิดข้อผิดพลาด หลังจากนั้นก็เปลี่ยนมันเหมือนเดิม
บางทีมันอาจช่วยคุณได้เช่นกัน
ในกรณีของฉันมีผู้ประกอบการที่ใช้ประกอบไปด้วยชุดพารามิเตอร์เริ่มต้นสำหรับอินพุต ดูเหมือนว่า Swift 5.2 จะไม่รองรับอีกต่อไป
// Leads to error with Xcode 11.4
init(value: UIColor = Constants.staticBoolean ? .white : .green)
ในกรณีของฉันฉันมีข้อผิดพลาดกับ Eureka pod
Segmentation fault: 11 (in target 'Eureka' from project 'Pods')
ในไฟล์ Pod ฉันได้จัดหาเวอร์ชันล่าสุด:
pod 'Eureka', '~> 5.2.1'
ยังตั้งตั้งค่าให้SWIFT_COMPILATION_MODE
wholemodule
ฉันเปลี่ยน#imageLiteral(resourceName: "image_name")
เป็นUIImage(imageLiteralResourceName: "image_name")
เช่นเดียวกับผู้เผชิญเหตุอื่น ๆ มีปัญหา SwiftUI ฝังอยู่ในข้อความแสดงข้อผิดพลาดที่นี่ (ใช้ Xcode 11.4) ในกรณีของฉันการใช้.embedInScrollView()
ทำให้เกิดข้อผิดพลาดในการสร้าง การปิดใช้งานการโทรเหล่านั้นแก้ไข เป็นวิธีแก้ปัญหาฉันใส่.embedInScrollView()
ViewModifier เช่นนี้
public struct WrapInScrollView: ViewModifier {
public func body(content: Content) -> some View {
content
.embedInScrollView()
}
public init() {}
}
จากนั้นฉันจะใช้ตัวดัดแปลงนั้นเช่นการโทรเดิมเช่นนี้:
.modifier(WrapInScrollView())
ซึ่งหมายความว่าคุณยังสามารถฝังใน scrollView แต่ข้อผิดพลาด Seg 11 หายไป
น่าเสียดายโซลูชันการเปิดใช้งานความสามารถในการทดสอบใช้งานไม่ได้สำหรับฉัน
วิธีแก้ปัญหาชั่วคราว (จนกว่า Apple จะแก้ไขปัญหาคอมไพเลอร์ Xcode 11.4 Swift) คือการเปลี่ยนระดับการปรับให้เหมาะสมเป็น " ไม่มีการเพิ่มประสิทธิภาพ " สำหรับการวางจำหน่ายบนเป้าหมายที่ล้มเหลว ( SWIFT_OPTIMIZATION_LEVEL = "-Onone";
) มันทำงานในโครงการของเราซึ่งแบ่งออกเป็นหลายกรอบ ต้องตั้งค่าเพียงหนึ่งรายการ-Onone
เท่านั้น
แต่เอกสารประกอบของ Appleขอให้ไม่ส่งรหัสของคุณด้วยการตั้งค่าสถานะนี้ ใช้สำหรับการพัฒนาทำการปรับแต่งให้น้อยที่สุดและเก็บรักษาข้อมูลการดีบักทั้งหมด
ฉันคิดว่าเราต้องรอ: '(
ฉันได้รับข้อยกเว้นนี้และบันทึกการจัดเก็บช่วยให้ฉันเข้าใจว่ามันอยู่ในไฟล์ SwiftUI โดยเฉพาะ โดยกระบวนการของการกำจัดมันกลับกลายเป็นว่าฉันได้จากไปcontentInsets()
แล้วและalwaysBounceVertical()
ตัวดัดแปลงของสิ่งVStack
ที่ไม่ใช่ส่วนหนึ่งของList
:
VStack {
// more stuff
}
.contentInsets(UIEdgeInsets(top: 20, left: 0, bottom: 0, right: 0))
.alwaysBounceVertical()
การลบตัวดัดแปลงเหล่านี้อนุญาตให้ที่เก็บถาวรรีลีสเสร็จสมบูรณ์