ฉันคิดว่า Apple สรุปไว้แล้วภายใต้แอป Swift ล่มเมื่อพยายามอ้างอิงห้องสมุด Swift libswiftCore.dylib
อ้างจากQ&A ทางเทคนิค QA1886 :
แอป Swift ล้มเหลวเมื่อพยายามอ้างอิงไลบรารี Swift libswiftCore.dylib
ถาม: ฉันจะทำอย่างไรเกี่ยวกับข้อผิดพลาดในการโหลด libswiftCore.dylib ในคอนโซลของอุปกรณ์ของฉันที่เกิดขึ้นเมื่อฉันพยายามเรียกใช้แอพ Swift language ของฉัน
ตอบ: เพื่อแก้ไขปัญหานี้คุณจะต้องลงชื่อแอปของคุณโดยใช้ใบรับรองการลงนามรหัสโดยตั้งค่าหน่วยองค์กร (OU) เป็นรหัสทีมของคุณ ใบรับรองนักพัฒนาซอฟต์แวร์องค์กรและมาตรฐาน iOS ทั้งหมดที่สร้างขึ้นหลังจากปล่อย iOS 8 แล้วจะมีฟิลด์ ID ทีมใหม่ในสถานที่ที่เหมาะสมเพื่อให้แอป Swift ภาษาสามารถทำงานได้
โดยปกติแล้วข้อผิดพลาดนี้จะปรากฏในบันทึกของคอนโซลโดยมีข้อความคล้ายกับข้อความใดข้อความหนึ่งต่อไปนี้:
[....] [deny-mmap] mapped file has no team identifier and is not a platform binary:
/private/var/mobile/Containers/Bundle/Application/5D8FB2F7-1083-4564-94B2-0CB7DC75C9D1/YourAppNameHere.app/Frameworks/libswiftCore.dylib
Dyld Error Message:
Library not loaded: @rpath/libswiftCore.dylib
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000120021088
Triggered by Thread: 0
Referenced from: /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/TestApp
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x1001D8000, size=0x00194000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib
Dyld Version: 353.5
จำเป็นต้องใช้ใบรับรองใหม่เมื่อสร้างที่เก็บถาวรและบรรจุแอปของคุณ แม้ว่าคุณจะมีหนึ่งในใบรับรองใหม่เพียงลาออกจากที่เก็บถาวรแอป swift ที่มีอยู่จะไม่ทำงาน หากสร้างขึ้นด้วยใบรับรอง pre-iOS 8 คุณจะต้องสร้างการเก็บถาวรอื่น
สิ่งสำคัญ: โปรดใช้ความระมัดระวังหากคุณต้องการเพิกถอนและตั้งค่าใบรับรองการแจกจ่ายระดับองค์กรใหม่ หากคุณเป็นนักพัฒนาองค์กรภายในองค์กรคุณจะต้องระมัดระวังไม่เพิกถอนใบรับรองการแจกจ่ายที่ใช้ในการลงชื่อสมัครใช้แอปพนักงานองค์กรของคุณคนใดคนหนึ่งยังคงใช้งานเป็นแอพพลิเคชั่นที่ลงชื่อด้วยใบรับรองการกระจายองค์กรนั้น จะหยุดทำงานทันที ด้านบนใช้กับใบรับรองการแจกจ่ายระดับองค์กรเท่านั้น ใบรับรองการพัฒนามีความปลอดภัยในการเพิกถอนสำหรับนักพัฒนา iOS ขององค์กร / มาตรฐาน
ในฐานะที่เป็นคน AirSign ระบุรากปัญหาจากหายไปOUแอตทริบิวต์ในเรื่องข้อมูลของใบรับรองในบ้าน
เรื่อง: UID = 269J2W3P2L, CN = การกระจาย iPhone: ชื่อ บริษัท , OU = 269J2W3P2L , O = ชื่อ บริษัท , C = FR
ฉันมีใบรับรองการพัฒนาองค์กรการสร้างใหม่แก้ไขปัญหาได้