dyld`__abort_with_payload: ไม่มีข้อความแสดงข้อผิดพลาด


87

เมื่อฉันเริ่มแอปด้วย XCode ฉันมีข้อขัดข้อง แต่ไม่มีข้อผิดพลาด

แอปกำลังหยุดอยู่ในชุดข้อความนี้

ใส่คำอธิบายภาพที่นี่

ฉันจะทำอย่างไรเพื่อขอข้อมูลเพิ่มเติมเกี่ยวกับปัญหานี้

คำตอบ:


107

หากคุณใช้เฟรมเวิร์กที่กำหนดเองคุณต้องวางไว้ในส่วน "ไบนารีฝังตัว" ที่อยู่ในโครงการ Xcode ใต้แท็บเป้าหมาย / ทั่วไป


1
ฉันมีกรอบงานที่กำหนดเองและอยู่ในรายการ "Embedded Binaries" ในโครงการ Xcode ภายใต้เป้าหมาย> ทั่วไป ฉันยังคงได้รับปัญหานี้เมื่อพยายามเรียกใช้การทดสอบหน่วยของฉัน ฉันเพิ่งอัปเกรดส่วน Swift ของโค้ดของฉันเป็น Swift 3 (จาก 2) หากช่วยได้ ...
Mario A Guzman

@MarioAGuzman คุณแก้ไขยังไง? ฉันยังประสบปัญหาหลังจากการโยกย้าย Swift 3
iOS

@iOS น่าเสียดายที่ฉันไม่มีทางแก้ไขจริงๆ ปัญหาได้รับการแก้ไขแล้วด้วย Xcode 8.3 ที่เพิ่งเปิดตัว
Mario A Guzman

เหตุใดสิ่งนี้จึงต้องอยู่ในส่วนไบนารีในตัว ฉันกำลังพยายามใช้ ObjectiveDropboxOfficial.framework ฉันได้รับข้อผิดพลาดนี้ใส่ลงใน Embedded และ 'แก้ไข' แล้ว อย่างไรก็ตามฉันเอามันออกมาอีกครั้งและมันยังคง 'คงที่' เป้าหมายอื่น ๆ ที่กำหนดค่า AFAICT เดียวกันนั้นล้มเหลว เอกสารการติดตั้งดรอปบ็อกซ์ไม่ได้ระบุว่าจะใส่ไว้ใน Embedded Frameworks
Jim Leask

ที่ช่วย ตรวจสอบให้แน่ใจว่าคุณไม่มีรายการซ้ำใน "กรอบงานและไลบรารีที่เชื่อมโยง" เมื่อคุณเพิ่มลงในส่วนฝังตัวระบบจะเพิ่มลงในส่วนที่เชื่อมโยงโดยอัตโนมัติ
milesmeow

60

สำหรับฉันเป็นเรื่องง่ายCleanและRebuildแยกออก หวังว่าจะช่วยได้


81
Clean, Clean Build Folder, ลบเนื้อหาของโฟลเดอร์ Derived Data, ติดตั้ง Pod (ตามความเหมาะสม), รีสตาร์ท Xcode, รีสตาร์ทเครื่อง; จากนั้นทาเลือดลูกแกะที่ประตูเพื่อการวัดที่ดี
johnnyclem

1
ช่วยด้วย !!
Dmitriy Greh

การลบไดเร็กทอรีและรับคอมมิตล่าสุดจากคอมไพล์ไม่ได้ช่วย แต่การทำความสะอาดและสร้างใหม่ช่วยได้ฮ่า ๆ
えるまる

8
ในกรณีของฉันฉันต้องมัดพริกกับมะนาวไว้ที่วงกบประตู
Naresh

1
ฉันต้องเสียสละลูกชายคนแรกของฉันด้วย แต่มันได้ผล!
Andor Németh

26

ใส่คำอธิบายภาพที่นี่ปัญหานี้เกิดขึ้นหลังจากการอัปเดตระบบเป็น macOS 10.15.2 เบต้า การปิดใช้งาน "Thread Sanitizer" ช่วยแก้ปัญหาได้ (Xcode 11.2) ตอนนี้ฉันใช้ Thread Sanitizer ไม่ได้และต้องรอการอัปเดตระบบปฏิบัติการครั้งต่อไป


6
โพสต์นี้ตอบคำถามเดิมเมื่อเกิดปัญหาในเครื่องจำลอง Xcode 11.3 หลังจากอัปเกรดเป็น Mac 10.15.2 ดูเหมือนว่าข้อบกพร่องของ Apple โปรดดูที่forums.developer.apple.com/thread/126891
Vadim Motorine

19

การเพิ่มเฟรมเวิร์กไปยังรายการสินทรัพย์ไบนารีที่ฝังไว้แก้ไขสิ่งนี้ นี่คือลักษณะการตั้งค่าของเฟรมเวิร์กต่างประเทศในรูปแบบสุดท้ายใน Xcode GUI เป็น Embedded Framework (Xcode 9.2 โดยส่วนตัวแล้วฉันชอบภาพเศษขนมปังที่ดีกว่า ;-)): ใส่คำอธิบายภาพที่นี่

Apple จงใจขัดข้องรันไทม์เพื่อบอกนักพัฒนาเกี่ยวกับปัญหาที่ว่าคุณไม่สามารถใช้เฟรมเวิร์กที่ไม่ใช่ของ Apple เป็นเพียงเฟรมเวิร์กที่เชื่อมโยงในการพัฒนา iOS ได้หรือไม่? มันจะดีกว่าถ้ามันเป็นข้อผิดพลาดในการสร้างฉันจะคิดว่า ... มีปุ่มที่บอกว่า "ย้าย!"

การใช้ Embedded Binaries ช่วยให้ผู้ใช้ไม่ต้องเพิ่ม Framework โดยไม่ขึ้นกับแอพของคุณ (หรือคุณทำกับโปรแกรมติดตั้ง) ในกรณีของ iPhone (iOS) นั้นเป็นไปไม่ได้ แต่บน macOS เป็นไปได้ แต่จะยุ่งเหยิงอย่างรวดเร็ว

สำหรับผู้ใช้ปลายทางจะดีกว่ามากเพียงแค่ลากและวางแอพเพื่อติดตั้งบน macOS ซึ่งเป็นจุดที่การฝังจะกลายเป็นประโยชน์ การฝังยังช่วยหลีกเลี่ยง "ความขัดแย้งของ DLL" แบบคลาสสิกของการมีเวอร์ชันภายนอกของเฟรมเวิร์กให้จัดการ (พื้นที่ดิสก์ถูกเวลาของลูกค้ามีค่า)


อัปเดตขนาดเล็ก ตอนนี้ Xcode 10.1 ช่วยให้คุณสามารถลากเฟรมเวิร์กที่กำหนดเองจากส่วน "ลิงก์ไบนารีกับไลบรารี" ซึ่งจะไปตามค่าเริ่มต้นไปยังส่วน "คัดลอกทรัพยากรบันเดิล" ในที่ที่ต้องเป็น ... ไม่เพียงแค่คัดลอกข้อมูลอ้างอิงอีกต่อไป แต่ก็ขยับได้เช่นกัน สกรีนช็อตที่นี่: stackoverflow.com/questions/24993752/…
Cerniuk

13

ฉันแก้ไขข้อผิดพลาดในโครงการของฉันแล้ว!
หากคุณใช้เฟรมเวิร์กที่รวดเร็วในโปรเจ็กต์ Object-C ฉันขอแนะนำให้คุณเปลี่ยนการตั้งค่าบิลด์
ฝังตัวเลือกไลบรารีมาตรฐาน Swift ไว้ที่ใช่เสมอ แบบนี้:ใส่คำอธิบายภาพที่นี่

หวังว่านี่จะเป็นประโยชน์กับคุณ


สิ่งนี้ใช้ได้ผลสำหรับฉันแม้ว่าจะไม่มีรหัสที่รวดเร็ว (เห็นได้ชัด) ในโครงการของฉัน
Jim75

XCode เปลี่ยนเป็นค่ากลับเป็นไม่ใช่และฉันลืมไปแล้ว ขอบคุณ :)
SeikoTheWiz

13

คลี่คลายในที่สุด!

สิ่งที่ได้ผลสำหรับฉันคือการทำให้เฟรมเวิร์กเป็น "ทางเลือก" แทนที่จะเป็น "จำเป็น"

หวังว่าจะช่วยได้!


ยอดมนุษย์ฉันต่อสู้กับปัญหานี้ 1,5 วัน ยังพบเมทริกซ์ที่ดีนี้twitter.com/isupportmatrixเปลี่ยนเป็นต้องแก้ไขที่ด้านข้างของฉันด้วย
swift2geek

และใช้งานได้เฉพาะกับการตั้งค่าในไฟล์ -> การตั้งค่าโครงการ -> ระบบการสร้างแบบดั้งเดิม
swift2geek

11

Xcode 11.1, ปิดDo not Embed, Embed & Signเป็นตัวเลือกที่ดี

0

222

ขอบคุณ @mkonovalov, @William Cerniuk


1
ทำงานให้ฉัน +1
abhimuralidharan

1
ขั้นตอนบังคับนี้คุณกำลังพยายามฝังกรอบงานที่กำหนดเองลงในแอปของคุณ
Akash Bhardwaj

6

1) ดำเนินการต่อเพื่อดูว่าข้อความใด ๆ ปรากฏในดีบักเกอร์เช่นไม่พบ "MyFramework.framework" หากเป็นเช่นนั้นให้ทำตามการสนทนานี้: OS X Framework Library ไม่ได้โหลด: 'ไม่พบรูปภาพ' สำหรับฉันคำตอบนี้ใช้ได้: https://stackoverflow.com/a/44796734/4060763

2) ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มไบนารีของคุณผ่านส่วน "ฝังไบนารี"

3) ตรวจสอบให้แน่ใจว่าคุณได้เปิดใช้งานการลงนามของเฟรมเวิร์กในส่วนการสร้างเฟส

4) ตรวจสอบให้แน่ใจว่าเฟรมเวิร์กที่ฝังไม่ใช่ลิงก์สัญลักษณ์

5) คุณสามารถทำให้เฟรมเวิร์กที่เชื่อมโยงเป็นทางเลือกแทนที่จะจำเป็นในเฟส สิ่งนี้จะบอกให้ iOS ไม่มองหาเฟรมเวิร์กเหล่านี้ในระหว่างการเปิดตัว แต่อย่างไรก็ตามคุณต้องแก้ไขข้อผิดพลาดเพื่อใช้กรอบงานเหล่านั้น!

6) ตรวจสอบว่ารายการ info.plist ทั้งหมดนั้นดีหรือไม่ ในกรณีของฉันฉันใช้ไฟล์ mac info.plist สำหรับ iOS กำลังมองหาไฟล์ xib ซึ่งไม่มีอยู่ในโปรเจ็กต์ iOS

7) ทำความสะอาดและสร้างหลังจากการเปลี่ยนแปลงดังกล่าว สิ่งนี้จำเป็นเนื่องจาก xcode ไม่คัดลอก / เปลี่ยนแปลงไฟล์เหล่านี้หากมีอยู่แล้ว

8) ลบแอพออกจาก iPad แล้วติดตั้ง เหตุผลเดียวกับ 7.


6

การยกเลิกการเลือก "Guard Malloc" ในการวินิจฉัยได้ผลสำหรับฉัน ดูภาพสำหรับการตั้งค่า


2
Guard Mallocเพื่อให้ถูกต้อง ใครรู้ว่าทำไมมันถึงแก้ไขข้อผิดพลาด?
Mojo66

1
คุณยังสามารถลองทำความสะอาดโปรเจ็กต์แล้วเรียกใช้อีกครั้งหรือเพียงแค่รีสตาร์ท Xcode ข้อผิดพลาดประเภทนี้น่ารำคาญและเป็นจุดบกพร่องใน Xcode
Karanveer Singh

5

หากต้องการตอบคำถามเดิม "ฉันจะทำอย่างไรเพื่อให้มีข้อมูลเพิ่มเติมเกี่ยวกับปัญหานี้" เธรดฟอรัมของ Apple นี้ให้คำแนะนำง่ายๆ: เพียงเรียกใช้แอปที่ขัดข้องนอก XCode (เช่นหยุดจาก XCode จากนั้นเรียกใช้ด้วยตนเองบน อุปกรณ์). ซึ่งจะสร้างบันทึกข้อขัดข้องที่มีรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่เกิดขึ้น จากนั้นคุณสามารถตรวจสอบบันทึกนี้ได้จากเมนูหน้าต่าง XCode / อุปกรณ์และเครื่องจำลอง -> ดูบันทึกอุปกรณ์


4

ฉันเพิ่งพลาดการใช้ "ความเป็นส่วนตัว - คำอธิบายการใช้งานกล้อง" ใน info.plist

ไม่รู้ว่าข้อมูลนี้จะช่วยใครได้บ้างหรือเปล่า ...


4

ฉันประสบปัญหาเดียวกันกับ Xcode 11.3 และ macOS Catalina 10.15.2 แอปทำงานได้ดีของอุปกรณ์ แต่ไม่ได้อยู่ใน Simulator ดูเหมือนว่ามีปัญหากับ Simulator และวิธีแก้ปัญหาคือปิดการใช้งาน Thread Sanitizer

อ้างอิง: https://forums.developer.apple.com/message/397978#397978

หวังว่านี่จะช่วยได้


3

ฉันพบข้อผิดพลาดเกี่ยวกับลายเซ็นเดียวกัน (โครงการของฉันอยู่ใน Obj-C) และพบว่าฉันลืมเชื่อมโยงกับกรอบงานที่เหมาะสม ข้อความแสดงข้อผิดพลาดในบันทึกการดีบักที่นำไปสู่การค้นหาข้อผิดพลาดคือ:

dyld: ไม่พบสัญลักษณ์: _OBJC_CLASS _ $ _ SFSafariViewController

สำหรับข้อผิดพลาดเฉพาะของฉันการเพิ่ม SafariServices.framework ใน Targets -> Build Phases -> "Link Binary With Libraries" ช่วยแก้ปัญหาได้ แม้ว่าคุณอาจไม่มีข้อผิดพลาดและวิธีแก้ไขที่เฉพาะเจาะจงเหมือนกัน แต่การตรวจสอบบันทึกการแก้ปัญหาเพื่อหาเบาะแสก็มีประโยชน์


2

ฉันมีสถานการณ์นี้หลังจากอัปเดตXcode เป็น v10.2.1และรวดเร็วเป็น v5.0ถ้าคุณกำลังใช้คาร์เธจ + RxSwift RxRelay.frameworkใช้ คุณควรไปที่ไดเร็กทอรี / Carthage / Build ของคุณค้นหาเฟรมเวิร์กนั้นและลากไปยังโปรเจ็กต์ของคุณ อย่าลืมเพิ่มลงในcarthage copy-frameworksสคริปต์ของคุณด้วย: $(SRCROOT)/Carthage/Build/iOS/RxRelay.framework

แก้ไขแล้วขอบคุณ: https://stackoverflow.com/a/52550148/2493555


1

หากคุณใช้เฟรมเวิร์กที่เขียนด้วย Swift ในแอปพลิเคชัน Objective-C คุณต้องรวม Swift toolchain ไว้ในแอพที่ใช้เฟรมเวิร์ก

วิธีที่ฉันพบคือการสร้างไฟล์จำลองที่รวดเร็วในแอปเพื่อให้ XCode จดจำได้อย่างรวดเร็วและเพิ่มลงในโครงการอย่างเหมาะสม จากนั้นคุณสามารถลบไฟล์ดัมมี่

ฉันจะชอบถ้ามีคนรู้วิธีที่ดีกว่าในการเพิ่มอย่างรวดเร็วในโครงการวัตถุประสงค์ -c โดยไม่ต้องเพิ่มไฟล์ที่รวดเร็ว



1

ฉันพบวิธีที่ถูกต้องในการแก้ไข

ตรวจสอบให้แน่ใจว่าAppleWWDRCA.cerได้ตั้งค่าโหมดเริ่มต้นของระบบแล้วมันจะทำงาน:

ใส่คำอธิบายภาพที่นี่


ทำงานให้ฉันเช่นกัน
dev_shanghai

1

ฉันประสบปัญหาเดียวกัน การตั้งค่า 'ฝังไลบรารีมาตรฐาน Swift เสมอ' เป็นใช่ในการตั้งค่าการสร้างของเป้าหมายของฉันได้ผลสำหรับฉัน


1

ฉันมีปัญหาที่คล้ายกันซึ่งได้รับการแก้ไขโดยไม่มีข้อกำหนดการอนุญาตใน plist (แปลกเหมือนกัน .. )

ฉันพยายามใช้ AVCaptureDevice และมันก็พังเมื่อเริ่มต้น (แอพของฉันน้อยมาก)

กำลังเพิ่ม - Privacy - Camera Usage Description เพื่อinfo.plistแก้ไขให้ฉัน


1

นอกจากนี้หากคุณใช้เฟรมเวิร์กแบบกำหนดเองตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าประเภท Mach-O เป็นไลบรารีแบบคงที่ ฉันอ่านบางที่ IOS ไม่อนุญาต dylib อย่างไรก็ตามสิ่งนี้ใช้ได้ผลสำหรับฉัน


1

หากต้องการเพิ่มลงในรายการที่ยาวของข้อผิดพลาดนี้จะเกิดขึ้นเมื่อฉันใช้ XCode12.2 Beta 2 กับ Mac ที่ใช้ MacOS 10.15.5 โดยมีเป้าหมายการปรับใช้ที่ตั้งค่าเป็น MacOS 11.0 สถานการณ์นี้เกิดขึ้นเนื่องจากฉันกำลังลองใช้แอป Mac Catalyst Tutorialในการเพิ่ม SideBar การเปลี่ยนเป้าหมายเป็น MacOS 10.15.5 จะกำจัดข้อผิดพลาดและเปิดแอปอย่างถูกต้อง


0

ฉันได้แก้ไขข้อผิดพลาดในโครงการของฉันแล้ว
1. ตรวจสอบเธรดอื่น ๆ เมื่อเกิดข้อผิดพลาดฉันพบว่าข้อผิดพลาดของฉันเกี่ยวกับกล้อง

ใส่คำอธิบายภาพที่นี่

  1. เพิ่มความเป็นส่วนตัวของกล้องในไฟล์ Info.plist
    1) เปิดไฟล์ info.plist
    2) เพิ่มคีย์ใหม่ที่เรียกว่า "ความเป็นส่วนตัว - คำอธิบายการใช้งานกล้อง" และป้อนสตริงที่อธิบายว่าเหตุใดแอปจึงต้องใช้กล้องคำอธิบายจะแสดงเมื่อแอปของคุณต้องการใช้ความเป็นส่วนตัว

ใส่คำอธิบายภาพที่นี่


0

ฉันเพิ่งมีปัญหาเดียวกันและสาเหตุเกิดจากการที่ฉันเพิกถอนใบรับรองนักพัฒนาซอฟต์แวร์และสร้างใบรับรองใหม่ด้วย Xcode 10 หลังจากอัปเดต macOS Mojave ใหม่ (สำหรับบางรายการจะลบข้อมูลรับรองการเข้าสู่ระบบทั้งหมดและล้าสมัยไปแล้ว ใบรับรองพวงกุญแจ)

ดังนั้นสิ่งที่ฉันต้องทำคือลบแอพที่ติดตั้งออกจากอุปกรณ์ของฉันและเรียกใช้ผ่าน Xcode อีกครั้งเพื่อให้แอพนั้นติดตั้งโปรไฟล์การจัดสรรใหม่ที่ถูกต้องในอุปกรณ์ของฉัน :)


0

บางครั้งมันเกิดขึ้นเมื่อคุณใช้กรอบระบบที่สามารถเข้าถึงได้จาก iOS เวอร์ชันใหม่กว่าซึ่งเป็นเวอร์ชันเป้าหมายของคุณเท่านั้น อาจได้รับการแก้ไขโดยทำเครื่องหมายกรอบงานที่เชื่อมโยงนี้เป็นทางเลือก

ตัวอย่างเช่นโครงการที่กำหนดเป้าหมายบน iOS 11 และกำลังใช้คุณลักษณะAuthenticationServicesสำหรับ iOS 12 AutoFill จะขัดข้องใน iOS 11 ตามที่อธิบายไว้


0

จริงๆแล้วฉันมีปัญหากับ 11.3.1 และ Thread Sanitizer ก็ปิดอยู่แล้วตามที่กล่าวไว้ข้างต้น ในกรณีของฉันปัญหาคือฉันเคยมีเวอร์ชัน xCode ที่แตกต่างกันในโฟลเดอร์แอปพลิเคชันของฉันเช่นนั้น

/Applications/xcode11.3.1/Xcode.app
/Applications/xcode11.3/Xcode.app
/Applications/xcode10.1/Xcode.app

และ

/Applications/Xcode.app - was 11.2

ฉันใช้เวลา 2 วันในการทำความเข้าใจว่าระบบบิวด์ดู /Applications/Xcode.app ตามค่าเริ่มต้น ดังนั้นการนำ 11.3.1 ไปที่ /Applications/Xcode.app ในที่สุดก็แก้ปัญหาได้


0

เกิดปัญหาเดียวกันกับฉัน ฉันมี iOS 14 Beta และปัญหาได้รับการแก้ไขเมื่อฉันอัปเดตเป็นเวอร์ชันทางการ


-1

ฉันประสบปัญหานั้นเฉพาะเมื่อใช้งานบนอุปกรณ์จริง (iPhone SE) ในโครงการจำลองทำงานได้ตามที่คาดไว้

ฉันได้ลองแก้ไขทั้งหมดจากเธรดนี้และจากที่นี่: OS X Framework Library ไม่โหลด: 'ไม่พบรูปภาพ' ไม่มีสิ่งใดที่เหมาะกับฉัน

สำหรับฉันปัญหาได้รับการแก้ไขแล้วหลังจากรีสตาร์ท iPhone (sic!)

ฉันทำ:

  • ทำความสะอาดโฟลเดอร์สร้าง
  • ทำความสะอาดข้อมูลที่ได้รับ
  • ลบแอพออกจากอุปกรณ์
  • รีบูตอุปกรณ์

และในที่สุดก็ใช้งานได้ :)

หากวิธีอื่น ๆ ล้มเหลวอย่าลืมลองใช้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.