dyld: ไลบรารีไม่ถูกโหลด: @ rpath / libswiftCore.dylib


412

ฉันพยายามเรียกใช้แอพ Swift บน iPhone 4s ของฉัน มันใช้งานได้ดีบนเครื่องจำลองและเพื่อนของฉันสามารถรันบน iPhone 4s ของเขาได้ ฉันมี iOS 8 และ Xcode 6 ที่วางจำหน่ายอย่างเป็นทางการ

ฉันเหนื่อย

  • รีสตาร์ท Xcode, iPhone, คอมพิวเตอร์
  • ทำความสะอาดและสร้างใหม่
  • เพิกถอนและสร้างโปรไฟล์ใบรับรอง / การจัดหาใหม่
  • เส้นทางค้นหา Runpath คือ $(inherited) @executable_path/Frameworks
  • เนื้อหาฝังตัวประกอบด้วยรหัส Swift คือ 'ใช่'
  • รหัสประจำตัวการลงนามรหัสเป็นนักพัฒนา

ด้านล่างเป็นข้อผิดพลาดอย่างครบถ้วน

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/AppName
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/Frameworks/libswiftCore.dylib: mmap() error 1 at
address=0x008A1000, size=0x001A4000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/APPLICATION_NAME/Frameworks/libswiftCore.dylib


4
ทำความสะอาดและสร้างใหม่ทำงานให้ฉัน
MoralCode

การแก้ปัญหาคือที่นี่ หัวข้อเดียวกัน
Tarik

การทำความสะอาดและสร้างโครงการของฉันใหม่ที่จะทำงานให้ฉัน
Syed Zahid Shah

1 ฉันประสบปัญหาเดียวกัน ... ได้รับการแก้ไขโดยการเพิ่ม: ใน podfile ของคุณ: use_modular_headers! แทนการใช้ _frameworks! โชคดี! ฉันหวังว่านี่จะใช้งานได้สำหรับคุณ!
Tejas

คำตอบ:


554

สำหรับฉันไม่มีวิธีแก้ไขปัญหาก่อนหน้านี้ทำงาน เราค้นพบว่ามีการตั้งค่าสถานะ "ไลบรารีแบบฝังมาตรฐาน Swift เสมอ" ในการตั้งค่าการสร้างที่จำเป็นต้องตั้งค่าเป็น YES มันไม่ใช่โดยค่าเริ่มต้น!

Build Settings > Always Embed Swift Standard Libraries

หลังจากตั้งค่านี้ให้ทำความสะอาดโครงการก่อนสร้างอีกครั้ง

สำหรับผู้อ่านที่กระตือรือร้นคำอธิบายบาง ส่วนที่สำคัญที่สุดคือ:

ตั้งค่าเนื้อหาฝังตัวที่มีรหัส Swift (EMBEDDED_CONTENT_CONTAINS_SWIFT) การตั้งค่าการสร้างเป็น YES ในแอปของคุณดังแสดงในรูปที่ 2 การตั้งค่าการสร้างนี้ซึ่งระบุว่าผลิตภัณฑ์ของเป้าหมายมีเนื้อหาฝังตัวด้วยรหัส Swift บอก Xcode เพื่อฝังไลบรารีมาตรฐาน Swift ในแอปของคุณ เมื่อตั้งค่าเป็น YES

ป้อนคำอธิบายรูปภาพที่นี่

แต่ก่อนเรียกว่าธง Embedded Content Contains Swift Code


20
ทำงานให้ฉันด้วยขอบคุณมาก สิ่งที่ฉันเป็นปริศนาถ้าฉันเพิ่มรหัส swift ในโครงการเหตุใด Xcode จึงไม่อัปเดตสิ่งนี้โดยอัตโนมัติ ดูเหมือนว่าพฤติกรรมเริ่มต้นที่สมเหตุสมผล ฉันคิดว่าวิธีนี้จะช่วยให้คุณควบคุมไลบรารีที่รวมอยู่ได้มากขึ้น ฯลฯ
PoL0

11
สำหรับฉันคือ "ชุดสินทรัพย์ที่ฝังในชุดผลิตภัณฑ์"!
Matte.Car

17
ทำความสะอาดหลังจากคุณทำเช่นนี้
Aggressor

2
ทำความสะอาดหลังจากทำสิ่งนี้เป็นสิ่งที่แก้ไขปัญหาของฉัน ดีใจที่ฉันตรวจสอบความคิดเห็น! =]
Relequestual

75
ตอนนี้เรียกว่า Always Embed Swift Standard Libraries เดี๋ยวนี้
Warpzit

136

น่าแปลกที่พอฉันทำคือ"ล้าง" โครงการของฉัน (shift + cmd + K) และมันก็ใช้ได้ ดูเหมือนว่าจะเกี่ยวข้องกับใบรับรองแม้ว่า


ทำความสะอาดเหมาะสมเนื่องจากบังคับให้รีเฟรชรายการแคชที่ใช้ในงานสร้าง ฉันต้องทำเช่นนี้เพราะฉันเพิ่งรีเฟรชใบรับรองการลงนาม ฉันทำความสะอาดและสร้างโฟลเดอร์ Clean (Option-clean)
Victor Engel

12
ฮ่าใช่มันใช้งานได้ ฉันรีเซ็ตใบรับรองของฉันไปก่อนหน้านี้และงานทำความสะอาดแบบนี้มีเสน่ห์
รหัสต้นไม้

อัจฉริยะนี่คือปัญหาที่เกิดจากการอัพเกรดจาก 2 เป็น 3 โดยไม่ต้องทำความสะอาดระหว่างฉันสงสัยว่าสำหรับฉันอย่างน้อย
Fonix

2
ปัญหาเดียวกันที่นี่ ต้องสร้างบิลด์ใหม่หลังจากจัดการใบรับรอง
Marc

1
ปัญหาเดียวกันที่นี่ ต้องทำความสะอาดเป็นขั้นตอน ไม่จำเป็นต้องจัดการใบรับรอง แก้ไขปัญหาของฉันแล้ว
Manish Nahar

95

ฉันเริ่มได้รับข้อผิดพลาดนี้เมื่อฉันลบออก:

@executable_path/Frameworks

จากRunpath Search Pathsในการตั้งค่าการสร้างของฉัน แทนที่มันแก้ไขทุกอย่างอีกครั้ง (ขอบคุณพระเจ้าสำหรับการควบคุมแหล่งที่มา!)

ฉันไม่รู้ว่ามันไปถึงที่นั่นได้อย่างไร แต่ดูเหมือนว่ามันเป็นสิ่งจำเป็นสำหรับไบนารีที่จะหารันไทม์ Swift ในตัว


2
อัปเดตโครงการ iOS6 เก่าเป็น iOS7 และ Swift และได้รับข้อผิดพลาดนั้น @ executable_path / Frameworks แก้ไข ขอบคุณ!
Lensflare

5
สำหรับฉันตั้งแต่ Xcode 8b5 เป็นจริง@loader_path/../Frameworksสำหรับการทดสอบหน่วย macOS และ@loader_path/Frameworksสำหรับการทดสอบหน่วย iOS ที่จำเป็นต้องเพิ่ม
ปาสกาล

ใช่ นี่คือการแก้ไขที่ทำเพื่อฉันใน iOS 10 / Xcode 8 โครงการเริ่มต้นบน iOS 2-3 ตามวัตถุประสงค์บริสุทธิ์และตอนนี้เราเพิ่งเพิ่ม Swift
TahoeWolverine

เพิ่มนี้แก้ไขข้อผิดพลาดสำหรับฉันเช่นกัน ใครรู้เหตุผลทั้งหมดนี้ ขอบคุณสำหรับความช่วยเหลือ
ร็อด

ทำงานให้ฉันด้วย! (XCode 8.2.1)
The Good Giant

63

สำหรับอุปกรณ์คุณต้องเพิ่มเฟรมเวิร์กไดนามิกไปยังEmbedded binariesส่วนในGeneralแท็บของโครงการ
ป้อนคำอธิบายรูปภาพที่นี่


1
ความคิดใด ๆ @Mustafa
user3751185

62
คำตอบนั้นคลุมเครือมาก
Unheilig

1
อีกครั้งตอบค่อนข้างคลุมเครือ ไม่แน่ใจว่าหมายความว่าอย่างไรเกี่ยวกับ OP
Richie Marquez

2
ทำงานให้ฉัน การเพิ่มเฉพาะในส่วน "กรอบงานและไลบรารีที่เชื่อมโยง" ไม่ได้เป็นการหลอกลวง
Danchoys

5
หากต้องการอธิบาย: หากสิ่งที่คุณเห็นในข้อความแสดงข้อผิดพลาดคือชื่อของกรอบ (เช่น Cocoa Touch Framework ที่กำหนดเองที่คุณทำ) อย่าเพิ่งเพิ่ม. เฟรมในการพึ่งพาเป้าหมายในเฟสสร้าง คุณต้องเพิ่มไปยัง Embedded Binaries ในแท็บ General คำตอบนี้ได้แก้ไขแล้วสำหรับฉัน
Matthew Quiros

62

ใน Xcode 8 ตัวเลือกสำหรับEmbedded Content Contains Swift Codeตัวเลือกจะไม่สามารถใช้ได้อีกต่อไป

มันถูกเปลี่ยนชื่อเป็น "Always Embed Swift Standard Libraries = YES"

ป้อนคำอธิบายรูปภาพที่นี่


สิ่งนี้ช่วยฉันด้วยความผิดพลาดใน WatchOS
Alex Bartiş

28

ฉันคิดว่ามันเป็นข้อผิดพลาดเมื่อสร้างใบรับรองโดยตรงจาก Xcode ในการแก้ไข (อย่างน้อยใน Xcode 6.1 / 6A1052d):

  1. ไปที่เว็บไซต์ Apple Developer ที่มีการจัดการใบรับรอง: https://developer.apple.com/account/ios/certificate/certificateList.action
  2. เลือกใบรับรองของคุณ (ซึ่งควรแสดง "จัดการโดย Xcode" ภายใต้ "สถานะ") และ "เพิกถอน"
  3. ทำตามคำแนะนำที่นี่เพื่อสร้างใบรับรองใหม่ด้วยตนเอง: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP400125-CH31-CH31-CH31-CH31-CH31-CH31-CH SW32
  4. ไปที่ Xcode> การตั้งค่า> บัญชี> [Apple ID ของคุณ]> ดับเบิลคลิกที่ชื่อทีมของคุณ> กดปุ่มรีเฟรชเพื่ออัปเดตใบรับรองและโปรไฟล์การจัดสรร

ทำงานให้ฉันได้ก็ต่อเมื่อลบและสร้างเฉพาะในเครื่องมือ XCode เครื่องมือ "ใบรับรอง, ตัวระบุและโปรไฟล์" ของ developer.apple.com ซึ่งสร้างใบรับรองใหม่ที่ไม่ดี
Graham P Heath

4
ให้อภัยความไม่รู้ของฉัน ... คำตอบนี้เกี่ยวข้องกับคำถามที่ถามมาอย่างไร ดูเหมือนว่าคุณจะตอบคำถามอื่น หรือมากกว่าอย่างถูกต้องคุณตอบกลับไปยัง @ user3056783 คำตอบที่ถูกลบซึ่งเป็นเพียง "ฉันมีปัญหานี้แสดงความคิดเห็นด้วย"
jww

ฉันเพิ่งสร้างใบรับรองใน Xcode ดังนั้นมันอาจเป็นปัญหาเดียวกันแม้ว่าฉันจะสามารถแก้ไขได้โดยเพียงแค่เรียกใช้ Clean
pr1001

1
ตอนนี้ปุ่ม "รีเฟรช" ถูกเปลี่ยนชื่อเป็น "ดาวน์โหลดทั้งหมด" ... :)
Thyselius

1
ปัญหาเดียวกันใน XCode 7 สร้างไฟล์ใบรับรองด้วยตนเองที่ศูนย์นักพัฒนา Apple แก้ไขปัญหาให้ฉัน
JonSlowCN

25

ตกลงแบ่งปันที่นี่อีกสาเหตุของข้อผิดพลาดนี้ ฉันใช้เวลาสองสามชั่วโมงในการแยกแยะ

ในกรณีของฉันนโยบายความน่าเชื่อถือของใบรับรองของฉันในการเข้าถึง Keychain คือความน่าเชื่อถือเสมอการเปลี่ยนกลับเป็นค่าเริ่มต้นแก้ปัญหาได้

ในการเปิดหน้าต่างการตั้งค่าใบรับรองให้ดับเบิลคลิกที่ใบรับรองในรายการการเข้าถึง Keychain ของใบรับรอง

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่


มันก็ใช้ได้สำหรับฉันเช่นกัน ฉันใช้พ็อดเพื่อรวม PubNub และ AWS sdks ฉันได้ลองใช้วิธีการต่าง ๆ เช่นการเปลี่ยน 'เส้นทางค้นหาเส้นทาง' มันถูกตั้งค่าเป็นค่าที่กล่าวถึงในคำตอบข้างต้น ทำเครื่องหมายใช่เพื่อฝังโค้ด swift ในการตั้งค่าการสร้าง แต่ไม่ได้ผล ในที่สุดโซลูชันนี้ก็ได้ผลสำหรับฉัน ไชโย
Ehsan

1
ทำงานให้ฉัน ฉันไม่เคยสงสัยอะไรแบบนี้ ขอบคุณมาก.
Pierre-Yves

ฉันลองทุกวิธีการแก้ปัญหาข้างต้นนี้และนี่คือเล็บในโลงศพ ฉันไม่แน่ใจว่าฉันต้องการการรวมกันของพวกเขาทั้งหมดหรือไม่ แต่นี่เป็นผู้ชนะสำหรับฉัน เพื่อให้ชัดเจนสิ่งที่ฉันทำคือ: การทำความสะอาด proj รวม load_path ในพา ธ การค้นหา Runpath ย้ายใบรับรองการแจกจ่ายจากระบบไปยังพวงกุญแจเข้าสู่ระบบตั้งค่าฝังไลบรารี่มาตรฐานที่รวดเร็วเสมอไปใช่ "ไม่น่าเชื่อถือ" ใบรับรอง (ตั้งค่ากลับสู่ระบบ ความน่าเชื่อถือเริ่มต้น)
Nick Molyneux

อันศักดิ์สิทธิ์ศักดิ์สิทธิ์ ... ขอบคุณมาก!
Ethenyl

23

ฉันมีปัญหานี้เมื่อใช้การทดสอบ Swift ของฉัน (แต่ไม่ใช่แอปของฉัน) แต่กลับกลายเป็นว่าการทดสอบที่จำเป็นในการมีมากกว่า@executable_path/FrameworksในมันRunpath Search Pathsสร้างการตั้งค่าเป้าหมายการทดสอบ การตั้งค่าเส้นทางค้นหา Runpath เป็นสิ่งต่อไปนี้ทำให้ฉันมีเสน่ห์:

$(inherited)
@executable_path/Frameworks
@loader_path/Frameworks

1
ใช่นี่มัน! ประสบกับสิ่งนี้สำหรับ AFDateHelper.framework, Result.framework สำหรับผู้ที่ Google เข้ามาอยู่ที่นี่ ฉันรู้ว่านี่เป็นวิธีแก้ปัญหาเนื่องจากการทำเช่นนี้ได้เปลี่ยนชื่อของเฟรมเวิร์กที่ฉันได้รับข้อผิดพลาดนี้ - นั่นเป็นเฟรมเวิร์กที่ฉันพลาดไม่ได้รวมทั้งในcarthage copy-frameworksเพราะมันเป็นการพึ่งพาลำดับที่สอง )
Angad

2
Hallelujah! ขอพระเจ้าอวยพรคุณดอนน่า นั่นเพิ่งจบการต่อสู้ 3 ชั่วโมง
Adam Waite

สุกใส สิ่งที่ฉันกำลังมองหา
gran_profaci

21

ปัญหานี้เกิดขึ้นอีกครั้งในXcode 10.2 คุณต้องดาวน์โหลดและติดตั้งแพ็คเกจต่อไปนี้จาก Apple มันมีสวิฟท์ 5 Runtime สนับสนุนสำหรับเครื่องมือบรรทัดคำสั่ง

https://support.apple.com/kb/DL1998?locale=en_US


ฉันได้รับ dyld: ไม่พบสัญลักษณ์: _ $ s11SubSequenceSlTl งานนี้👍
Aditya Deshmane

ที่ดี! แก้ไขกับสิ่งนี้
Roran

Works! สิ่งนี้ทำให้ฉันนึกถึงการเขียนโปรแกรม windows แบบเก่าเมื่อคุณจำเป็นต้องติดตั้ง Visual C + + ที่เผยแพร่ซ้ำได้ msvcrt.dll
4474

ขอบคุณ! พยายามทุกอย่างอื่นและนี่คือมัน
Silverstar

17

คุณจะต้องตั้งค่าRunpath Search Pathsไป@executable_path/Frameworksตามที่แสดงในหน้าจอการตั้งค่าดังต่อไปนี้รูปร่าง:

ป้อนคำอธิบายรูปภาพที่นี่

ถ้าคุณมีกรอบฝังใด ๆ ที่ทำในสวิฟท์มากกว่าที่คุณสามารถตั้งค่าให้ตัวเลือกการสร้างYESEmbedded Content Contains Swift Code


1
ใช่สำหรับกรอบอย่างรวดเร็ว, การตั้งค่า "เนื้อหาที่ฝังตัวมีรหัสสวิฟท์" เพื่อใช่เป็นสิ่งที่จำเป็น
david

ฉันทำเครื่องมือบรรทัดคำสั่งที่ใช้ dylibs บางอย่างที่จะส่งพร้อมกับเครื่องมือในไดเรกทอรีท้องถิ่น (และไม่ใช่ใน / usr / lib หรืออะไรทำนองนั้น) otool -Lสำหรับ dylibs เหล่านี้บอกฉันว่าพวกเขาใช้@rpath/...เส้นทางของตัวเองแล้ว ตอนนี้โดยการตั้งค่าRunpath Search Pathไปยังเส้นทางของโฟลเดอร์นั้นฉันสามารถเรียกใช้เครื่องมือของฉันและมันจะค้นหา dylibs ที่เก็บไว้ในโฟลเดอร์ถัดจากมัน
Thomas Tempelmann

เมื่อพยายามเพิ่มโมดูล Swift ลงในโครงการ React Native มันไม่สามารถค้นหา@rpath/libswiftAppKit.dylibได้ ปัญหาทำให้ฉันได้เรียนรู้ว่าผมต้องเพิ่ม SearchPath: @executable_path/../Frameworks/ขึ้นอยู่กับคำแนะนำเหล่านี้ ไม่ว่าสิ่งนี้จะใช้กับโครงสร้างโครงการของฉันฉันไม่สามารถพูดได้ แน่นอนว่าฉันไม่ต้องทำความสะอาด DerivedData เพื่อให้การตั้งค่านี้มีผล!
Jamie Birch

16

ฉันคิดว่า 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

ฉันมีใบรับรองการพัฒนาองค์กรการสร้างใหม่แก้ไขปัญหาได้


หลังจากใช้เวลาหลายชั่วโมงในการพยายามทำความเข้าใจว่าทำไมการตั้งค่า CI ใหม่ของฉันจึงไม่สามารถเผยแพร่แอปเบต้าอย่างถูกต้อง (บัญชีองค์กรจริง ๆ ) ฉันคิดว่าในตัวเลือกการส่งออก compileBitcode ต้องเป็นจริง
gderaco

10

ให้โปรเจ็กต์ P กำลังนำเข้าไลบรารีที่กำหนดเอง L จากนั้นคุณต้องเพิ่ม L เข้าไป

P -> Build Phases -> Embed Frameworks -> +. ที่เหมาะกับฉัน

ป้อนคำอธิบายรูปภาพที่นี่


9

วิธีที่ง่ายที่สุดและง่ายต่อการเพิกเฉยนั่นคือทำความสะอาดและสร้างใหม่

วิธีนี้แก้ไขปัญหาหลังจากลองคำตอบด้านบนแล้ว แต่ไม่ได้ผล


7

ฉันมีปัญหาเดียวกันหลังจากย้ายไปที่แม็คใหม่และหลังจากเวลาผ่านไปลองคำตอบที่แนะนำทั้งหมดในคำถามไม่มีสิ่งใดที่ได้ผลสำหรับฉัน

ทางออกสำหรับฉันคือการติดตั้งใบรับรองที่ขาดหายไปนี้ http://developer.apple.com/certificationauthority/AppleWWDRCA.cer

พบคำตอบได้ที่นี่ https://stackoverflow.com/a/14495100/976628


6

เปลี่ยนCopy Pods Resourcesสำหรับเป้าหมายจาก:

"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-resources.sh"

ถึง:

"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-frameworks.sh"

1
นี่เป็นปัญหาสำหรับฉัน!
RealCasually

มีอะไรอีกที่แตกหัก คุณช่วยฉันปรับปรุงคำตอบได้ไหม?
BartłomiejSemańczyk

ดูเหมือนว่าจะทำงานกับข้อยกเว้นที่กำลังเรียกใช้ 'ติดตั้งพ็อด' แทนที่การเปลี่ยนแปลง
RealCasually

@RealCasually คุณถูกต้องมีวิธีป้องกันไม่ให้เขียนทับสิ่งนี้หรือวิธีแก้ปัญหาใด ๆ ?
BartłomiejSemańczyk

พระเจ้าช่วย. นี่เป็นปัญหาสำหรับฉันหลังจากลองทำอย่างอื่น 100 อย่างและลิง 4 ชั่วโมง เกิดอะไรขึ้นใน framework.sh กับ resources.sh?
kennydust

6

ฉันแก้ไขด้วยการลบข้อมูลที่ได้รับและคราวนี้มันทำงานได้อย่างถูกต้อง พยายามกับXcode 7.3.1GM


การลบข้อมูลที่ได้รับของฉันยังใช้งานได้ฉันได้ทำความสะอาด (CMD + K) ล่วงหน้าทุกครั้งในกรณีและข้อผิดพลาดก็ตายอย่างเจ็บปวด!
Stuart P.

6

ข้อความแสดงข้อผิดพลาดนี้อาจเกิดขึ้นเมื่ออัพเกรด Xcode (และต่อมาเป็น Swift เวอร์ชันใหม่) และโครงการของคุณใช้เฟรมเวิร์กที่สร้าง / คอมไพล์ด้วย Swift เวอร์ชันเก่า / ก่อนหน้า

ในกรณีนี้การสร้างเฟรมเวิร์กใหม่และการเพิ่มอีกครั้งจะเป็นการแก้ไขปัญหา


เรื่องนี้เกิดขึ้นกับฉันจาก Xcode 9.2 เป็น 9.3 แม้ว่าฉันจะไม่ได้ค้นพบจนกว่าจะถึงเวลาอัปเกรด แต่ตราบใดที่โครงการสร้างขึ้นด้วย Xcode 9.2 ก่อนหน้านี้มันยังคงทำงานต่อไปเรื่อย ๆ ด้วย Xcode 9.3 หลังจากทำการชำระเงินที่สะอาดแล้วฉันก็ค้นพบสิ่งนี้
Svein Fidjestøl

ฉันไม่คิดว่าคำตอบนี้ได้รับการจัดอันดับสูงพอ เมื่อใช้ Carthage และ Xcode เวอร์ชั่นที่ได้รับการติดตั้งคุณจะต้องสร้างไลบรารี Carthage ของคุณใหม่เพื่อให้ปัญหานี้หายไป
Darren

5

หลังจากได้ลองทุกอย่างในที่สุดฉันก็พบว่างานสร้างนั้นไม่ได้รวมรายละเอียดทุกครั้งแล้วครั้งเล่า อาจเป็นการเร่งกระบวนการ ... เพื่อให้แน่ใจว่าบรรจุภัณฑ์ทั้งหมดก่อนที่จะเรียกใช้บนอุปกรณ์ให้ทำการล้างก่อน: Shift-Cmd-K จากนั้นสร้างด้วย: Cmd-B หลังจากนั้นเรียกใช้บนอุปกรณ์ของคุณ ง่าย. ขอแสดงความนับถือทุกท่านที่น่ารักในสถานที่นั้น!


4

ในกรณีของฉันมันเป็นเพียงชื่อของเป้าหมายของฉัน:

ฉันเปลี่ยนชื่อเป็นดังนี้: MyApp.somethingและปัญหาเดียวกันปรากฏขึ้น แต่ผมเห็นในหน้าต่างการตั้งค่าการสร้างชื่อโมดูลผลิตภัณฑ์ของฉันมีการเปลี่ยนแปลงเช่นนี้แอปของฉันบางสิ่งบางอย่าง ดังนั้นฉันลบจุดในชื่อเป้าหมายของฉัน ( MyAppSomething ) และปัญหาก็หายไป


4

สำหรับฉันหลังจากที่พยายามทุกอย่างโดยไม่ประสบความสำเร็จสิ่งที่ต้องทำก็คือลบออก@executable_path/FrameworksจากPackaging section(ไม่รู้ว่ามันเกิดขึ้นได้อย่างไรตั้งแต่แรก)

ป้อนคำอธิบายรูปภาพที่นี่


เป็นสิ่งนี้สำหรับเส้นทางกรอบหรือเส้นทางการตั้งค่าโครงการหลัก?
ZeeroCool77

ฉันมีหนึ่งโครงการแบบคงที่ lib a และต้องการเพิ่มอย่างรวดเร็ว fw ลงไป คำแนะนำนี้พร้อมกับบรรจุในตัวประกอบด้วยรหัส Swift to Yes เพื่อแก้ไขปัญหาทั้งหมด
mauron85

ดูเหมือนว่าโครงการของฉันจะพัง
UKDataGeek

3

ไม่มีวิธีแก้ปัญหาใดที่เหมาะกับฉัน รีสตาร์ทโทรศัพท์คงที่ แปลก แต่มันก็ใช้งานได้


3

วิธีแก้ปัญหาเหล่านี้ดูเหมือนจะไม่ทำงาน แต่เมื่อฉันเปลี่ยนสิทธิ์ของใบรับรอง World Wide Developer Use System defaultsแล้วก็ใช้งานได้ ฉันได้รวมขั้นตอนและภาพหน้าจอไว้ในลิงก์ด้านล่าง

ฉันขอแนะนำให้คุณบันทึกตั๋วในรายงานข้อผิดพลาดของ Apple ตามที่กล่าวไว้ที่นี่เพราะ Apple ควรแก้ไขข้อผิดพลาดขนาดใหญ่นี้: https://stackoverflow.com/a/41401354/559760


2

Xcode 7.2, iOS 9.2 บนอุปกรณ์หนึ่ง 9.0 อีกเครื่อง ทั้งสองมีข้อผิดพลาด ไม่ทราบว่าเกิดอะไรขึ้นที่ทำให้เกิดปัญหา แต่การแก้ปัญหาด้านบนสำหรับ WWDR นั้นถูกต้องสำหรับฉัน ติดตั้งใบรับรองนั้นและแก้ไขปัญหา

https://forums.developer.apple.com/message/43547 https://forums.developer.apple.com/message/84846


แม้ว่าลิงก์นี้อาจตอบคำถามได้ดีกว่าหากรวมส่วนสำคัญของคำตอบไว้ที่นี่และให้ลิงก์สำหรับการอ้างอิง คำตอบสำหรับลิงก์เท่านั้นอาจไม่ถูกต้องหากหน้าเว็บที่เชื่อมโยงนั้นเปลี่ยนแปลง - จากการรีวิว
BartłomiejSemańczyk

2
ขอโทษ. ดาวน์โหลดใบรับรอง WWDR แล้วเปิดเพื่อติดตั้งลงในพวงกุญแจของคุณ ใบรับรองอยู่ที่นี่: developer.apple.com/certificationauthority/AppleWWDRCA.cer
HG123

2

มีคำตอบมากมายที่นั่น แต่อาจเป็นคำตอบของฉันจะช่วยได้บ้าง

ฉันมีปัญหาเดียวกันแอพของฉันทำงานได้ดีบน Simulator แต่บนอุปกรณ์เกิดข้อผิดพลาดเนื่องจากแอพ I Lunches และให้ข้อผิดพลาดดังกล่าว ฉันได้ลองคำตอบและวิธีแก้ปัญหาทั้งหมดแล้ว ในกรณีของฉันโครงการของฉันฉันมีหลายเป้าหมายฉันได้สร้างเป้าหมาย B ซ้ำจากเป้าหมาย A เป้าหมาย B ทำงานได้ดีในขณะที่เป้าหมาย A เกิดข้อผิดพลาด ฉันใช้เนื้อหารูปภาพที่แตกต่างกันสำหรับแต่ละเป้าหมาย หลังจากค้นหาและทำ google ฉันพบสิ่งที่อาจเป็นประโยชน์กับใครบางคน

แอพหยุดทำงานล้มเหลวเมื่อฉันเปลี่ยนชื่อของเรียกใช้ไฟล์รูปภาพสำหรับแอพทั้งคู่ เช่นชื่อเนื้อหารูปภาพ Launch A LaunchImage A เป้าหมาย B อาหารกลางวันชื่อเนื้อหารูปภาพ LaunchImage B และกำหนดอย่างถูกต้องในแท็บทั่วไปของแต่ละเป้าหมาย แอพของฉันทำงานได้ดี


2

สำหรับฉันการสร้างแอป Swift บรรทัดคำสั่งของ MacOS ซึ่งขึ้นอยู่กับ libs Swift ของบุคคลที่สาม (เช่น SQLite) ไม่มีวิธีการแก้ปัญหาใดที่กล่าวมาใช้งานได้ สิ่งที่ทำงานได้เพิ่มเส้นทางต่อไปนี้ไปยังเส้นทางค้นหา Runpath ของฉันโดยตรงในการตั้งค่า Build:

/Applications/Xcode.app/Contents//Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/

การทำเช่นนั้นเป็นการเตือนเมื่อรันไทม์โดยบอกว่า Xcode พบ libswiftCore 2 เวอร์ชันซึ่งเหมาะสมแล้ว ยกเว้นว่าไม่รวมบรรทัดนั้นส่งผลให้ Xcode ไม่พบ libswiftCore เวอร์ชันใด ๆ

อย่างไรก็ตามมันจะทำเพื่อฉันแม้ว่ามันจะดูไม่ถูกต้อง - แอพของฉันเป็นเพียงยูทิลิตี้ที่ฉันไม่ได้ตั้งใจจะแจกจ่ายและอย่างน้อยก็ทำงานได้ในขณะนี้!


ขอบคุณ! ฉันอยู่ในสถานการณ์ของคุณและมันก็ใช้ได้กับฉันเช่นกัน
Joris Weimar

ใช่นี่คือทางออกสำหรับ CLI!
Maury Markowitz

1

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


1

ฉันเริ่มได้รับข้อผิดพลาดที่คล้ายกันนี้สำหรับการทดสอบการเพิ่มไฟล์ S3 โดยใช้บริการ AWS ด้านล่างเป็นข้อผิดพลาด dyld: ไลบรารีไม่ถูกโหลด: @ rpath / AWSAutoScaling.framework / AWSAutoScaling

ฉันค้นหาวิธีแก้ปัญหาข้างต้นมากมายและไม่เป็นประโยชน์สำหรับฉัน ลิงค์ด้านล่างช่วยฉันแก้ปัญหานี้

https://forums.developer.apple.com/thread/21292

ที่กล่าวว่าการแก้ไขปัญหานี้โดยการดาวน์โหลดWWDR (แอปเปิ้ลทั่วโลกนักพัฒนาสัมพันธ์ Certification Authority)


1

ฉันใช้ Xcode 8.3.2 สำหรับฉันปัญหาคือใบรับรอง AppleWWDRCA อยู่ในทั้งระบบและพวงกุญแจเข้าสู่ระบบ ลบทั้งสองแล้วเพิ่มลงในเพียงแค่เข้าสู่ระบบ Keychain ตอนนี้มันจะทำงานได้ดีอีกครั้ง 2 วันหายไป😭


คุณช่วยสงวนคำตอบที่ละเอียดกว่านี้หน่อยได้ไหม? คุณจะพบมันที่ไหน (ใบรับรอง) - ฉันคิดว่าสิ่งที่คุณเขียนย่อมาจากสิ่งที่นักพัฒนาทั่วโลกของ Apple ... แต่ชื่อเต็มคืออะไร? วิธีเพิ่มอีกครั้งหลังจากที่คุณลบออกจากพวงกุญแจทั้งหมดอย่างสมบูรณ์? คุณจะหาใบรับรองนี้ที่ไหน
Motti Shneor

1

ฉันใช้ Xcode 8.3.3 และ Xcode 9.2 ทางออกสำหรับฉันคือการเปลี่ยน Xcode เริ่มต้นของฉันจาก 8 เป็น 9 โดยใช้ Xcode Select:

$ xcode-select --print-path

$ sudo xcode-select -switch /Applications/Xcode-9.2.app

แก้ไข: จริงๆแล้วสิ่งที่ดูเหมือนว่าจะช่วยได้ที่นี่คือ Xcode 9.2 ใช้ข้อมูลที่ได้จาก Xcode 8.3.3 ไม่ใช่วิธีแก้ปัญหา แต่อย่างน้อยก็ช่วยให้ฉันสามารถก้าวไปข้างหน้ากับงานของฉันได้


ฉันลองปัญหานี้เกิดขึ้น แต่เมื่อฉันออกและรีสตาร์ท xcode มันทำงานได้ :) ลองดี
Abhishek Thapliyal

1

หากคุณได้รับข้อผิดพลาดเช่นนี้:

ไม่สามารถโหลดมัด "YourFrameworkTests" ได้เนื่องจากมันเสียหายหรือขาดทรัพยากรที่จำเป็น ลองติดตั้งบันเดิลใหม่ (dlopen_preflight (/ some / path /.../ YourFrameworkTests.xctest / YourFrameworkTests): ห้องสมุดไม่โหลด: @ rpath / SomeOther.framework / SomeOther อ้างอิงจาก: / some / path / ...

และใช้CocoaPodsในเฟรมเวิร์กของคุณจากนั้นลองแก้ไขPodfileและลบออกinherit! :search_pathsจากTestเป้าหมายและเรียกใช้pod installอีกครั้ง

สำหรับรายละเอียดเพิ่มเติมโปรดดูที่https://github.com/CocoaPods/CocoaPods/issues/8868

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