ฉันได้รับข้อผิดพลาดนี้หลังจากเพิ่มคลาส Swift ในโปรเจ็กต์ Xcode เก่า
dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
ฉันจะทำให้โครงการทำงานอีกครั้งได้อย่างไร
ฉันได้รับข้อผิดพลาดนี้หลังจากเพิ่มคลาส Swift ในโปรเจ็กต์ Xcode เก่า
dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
ฉันจะทำให้โครงการทำงานอีกครั้งได้อย่างไร
คำตอบ:
สำหรับฉันไม่มีวิธีแก้ไขปัญหาก่อนหน้านี้ทำงาน เราค้นพบว่ามีการตั้งค่าสถานะALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
(ในรุ่นก่อนหน้า: "เนื้อหาฝังตัวมีรหัส Swift") ในการตั้งค่าการสร้างที่ต้องตั้งค่าเป็นใช่ มันไม่ใช่โดยค่าเริ่มต้น!
ข้อผิดพลาดนี้สามารถเกิดขึ้นได้หากมีสิ่งผิดปกติเกิดขึ้นระหว่างการแปลงโครงการ Objective-C เพื่อเริ่มใช้ Swift ปัญหาคือการตั้งค่าตัวสร้าง Linker ไม่เคยได้รับการกำหนดค่าอย่างถูกต้องดังนั้นคุณต้องทำด้วยตนเอง ค้นหาการตั้งค่าเส้นทางการค้นหา Runpath และตั้งค่าเป็น:
$(inherited) @executable_path/Frameworks
แก้ไข:ฉันควรเพิ่มว่ามีน้ำท่วมล่าสุดของข้อผิดพลาดที่เกิดจากสิ่งอื่นทั้งหมด - Apple ทำการเปลี่ยนแปลงใน Swift ตัวเองเริ่มในบางที Xcode 6.1 หรือ 6.1.1 ทางออกเดียวที่ดูเหมือนว่าจะออกจาก Xcode ทำลายใบรับรองของคุณใน Keychain Access ไปที่ศูนย์สมาชิกและลบใบรับรองและโปรไฟล์ทั้งหมด (ยกเว้นโปรไฟล์สำหรับแอพใน Store - คุณไม่สามารถลบได้) จากนั้นเริ่ม ขั้นตอนการร้องขอใบรับรองทั้งหมดตั้งแต่เริ่มต้น
ฉันไม่แน่ใจจริงๆว่าทำไมคำถามนี้จึงถูกลดระดับลงฉันมีปัญหานี้เช่นกันเมื่อฉันพยายามใช้ Swift กับโครงการที่มีอยู่เป็นครั้งแรก การรีสตาร์ท Xcode ยังแก้ไขสิ่งนี้ให้ฉันด้วย
ฉันค้นหาปัญหานี้นานมาก มีหลายสาเหตุที่ทำให้เกิดปัญหานี้
หากคุณกำลังเผชิญเมื่อคุณและรหัส / ไลบรารี Swift ในโครงการ Objectice C คุณควรลองใช้โซลูชัน 1-2-3
หากคุณกำลังเผชิญกับปัญหานี้ด้วย Swift project Solution 4 ใหม่จะเหมาะกับคุณที่สุด
รีสตาร์ท Xcode จากนั้นคอมพิวเตอร์และ iPhone
ไปที่การตั้งค่าการสร้างโครงการและตั้งค่าสถานะAlways Embed Swift Standard Libraries
(ก่อนหน้านี้Embedded Content Contains Swift Code
) เป็นYES
ไปที่โครงการสร้างการตั้งค่าและเพิ่ม@executable_path/Frameworks
ไปยังRunpath Search Paths
ตัวเลือก
หากไม่ได้ผลก็ควรดำเนินการ Apple ดูเหมือนจะเป็นใบรับรองปะนินจาที่ได้กล่าวไว้ในโพสต์ของ AirSign
ที่ใบรับรอง InHouse
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
พวกเขาเพิ่มฟิลด์ใหม่ชื่อOU
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
ดังนั้นคุณควรสร้างใบรับรองและการจัดเตรียมใหม่
@executable_path/../Frameworks
ที่โครงการ iOS ต้องการโดยไม่ต้อง..
อยู่ตรงกลาง การเปลี่ยนค่านี้มีความสำคัญหากคุณแปลงเป้าหมายจากระบบปฏิบัติการหนึ่งเป็นระบบอื่น
ในกรณีของฉันฉันกำลังพยายามนำเข้ากรอบงานที่กำหนดเองและได้รับข้อผิดพลาดที่คล้ายกัน ปรากฎว่าฉันต้องนำเข้าเฟรมเวิร์กใน Embedded Binaries แทนที่จะเข้าไปใน Linked Frameworks และ Libraries
ไบนารีฝังตัวอยู่ภายใต้การตั้งค่าโครงการ -> -> ทั่วไป
สำหรับนักพัฒนาที่มีปัญหานี้ด้วยโครงสร้างการกระจาย Adhoc / Enterprise
สร้างใบรับรองการผลิตจากพอร์ทัล dev จากนั้นสร้างโปรไฟล์การแจกจ่ายใหม่ ดาวน์โหลดและติดตั้งทั้งคู่บน Mac ของคุณ ให้แน่ใจว่าคุณเลือกโปรไฟล์ที่ถูกต้องในการตั้งค่าการสร้าง Xcode ของคุณและสร้างแอปของคุณใหม่
โซลูชันที่ 5:
ในกรณีของฉันการแก้ปัญหาทั้งหมดที่กล่าวถึงในคำตอบของ accfewsนั้นมีประโยชน์มาก แต่ก็ไม่ได้ผล ฉันแก้ไขปัญหาด้วยการเพิ่มห้องสมุด swift ของฉันในส่วน "Embedded Binaries" ในส่วน "General" ของเป้าหมายโครงการของฉัน อาจเป็นเพราะความจริงที่ว่าฉันได้รวมกรอบงานที่รวดเร็วของฉันในพื้นที่ทำงานของฉัน? สิ่งที่มันรวบรวมตอนนี้! เตรียมพร้อมรวดเร็วฉันอยู่ที่นี่แล้ว!
การรีสตาร์ท Xcode อย่างง่ายช่วยแก้ไขปัญหาให้ฉันได้
สำหรับฉันปัญหานี้เกิดจากข้อเท็จจริงที่ว่าผู้ให้บริการออกใบรับรองความสัมพันธ์สำหรับนักพัฒนา Apple ทั่วโลกของฉันไม่ถูกต้อง
ดาวน์โหลดได้จากที่นี่: https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
ลากและวางลงใน Keychain Access ทำความสะอาดโครงการและเรียกใช้
ฉันมีโครงการ Obj-C ซึ่งฉันเริ่มเพิ่มไฟล์ swift source ต่อไปนี้แก้ไขปัญหาสำหรับฉัน:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
EMBEDDED CONTENT CONTAINS SWIFT = YES
ฉันเพิ่งสร้างโครงการใหม่จากแม่แบบ Xcode 6.3 และเปรียบเทียบการตั้งค่าโครงการกับโครงการดั้งเดิมของฉัน
ลองกดปุ่ม Alt ค้างไว้แล้วไปที่ Product -> Clean Build Folder ...
หวังว่ามันจะช่วยใครซักคน ..
สาเหตุของการเกิดขึ้นนี้มีมากมาย หลังจากเพิ่งค้นพบความสนุกในช่วงสุดสัปดาห์ แต่ยังมีอีกปัญหาหนึ่งที่ทำให้เกิดปัญหานี้ (ลำดับของการเซ็นชื่อรหัส) ฉันต้องการสร้างคำตอบสรุปที่รวมเอาโซลูชันที่เป็นไปได้ทั้งหมดเข้าด้วยกัน:
DerivedData
และBuild
ไดเร็กทอรี ดูภายใต้การตั้งค่าDerivedData
สำหรับสถานที่ตั้งของ Build
ควรอยู่ในโฟลเดอร์โครงการของคุณ@executable_path/Frameworks
มี นั่นคือสิ่งที่ง่าย หากคุณกำลังสร้างบรรทัดคำสั่งของคุณเองคุณอาจกำลังสร้าง.ipa
ไฟล์ของคุณเองเพื่ออัปโหลด ในกรณีดังกล่าวคุณต้องมั่นใจในสิ่งต่อไปนี้:
SwiftSupport/iphoneos
นั้นเหมือนกันกับเวอร์ชั่นในContents/YourApp.app/Frameworks
เนื่องจาก Swift ยังไม่สามารถใช้งานร่วมกันระหว่างไบนารีได้คุณต้องแน่ใจว่าเวอร์ชันเหล่านี้เป็นไฟล์ที่คุณสร้างแอพด้วย /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
คุณสามารถค้นหาห้องสมุดเหล่านี้ภายใต้codesign
ที่ไลบรารีและไฟล์เฟรมเวิร์ก (ใต้Frameworks
ใน.app
โฟลเดอร์) ก่อนแล้วจึงเซ็นชื่อแผนผัง.app
ต้นไม้ทั้งหมด .app
ต้นไม้ต้องลงนามกับentitlements.plist
แต่ไม่กรอบหวังว่าเมื่อ Swift 3.0 ออกมาและเราไม่จำเป็นต้องรวม Swift เข้ากับแอพของเราปัญหาทั้งหมดนี้จะหายไป
ฉันมีปัญหานี้โดยใช้ mobileprovision Ad Hoc (หรือองค์กร) พร้อมใบรับรองการผลิต การสลับไปใช้ใบรับรองการพัฒนาและการแก้ไขมือถือแก้ปัญหาได้
โปรเจคของฉันเป็นโปรเจ็กต์ Swift พร้อมคลาส Objective-C บางคลาส ฉันมีปัญหาเดียวกันเมื่อลงชื่อด้วยใบรับรอง inHouse (enterprise) เก่า
ขั้นตอนต่อไปนี้แก้ไขสิ่งนี้สำหรับฉัน
โซลูชันที่ 6:
ในกรณีของเราเพิกถอนใบรับรองการจัดจำหน่ายขององค์กร การสร้างใบรับรองใหม่และการปรับปรุงโปรไฟล์การจัดสรรจะแก้ไขปัญหาได้
(ดูเหมือนจะมีสาเหตุที่แตกต่างกันมากมายสำหรับข้อผิดพลาดนี้หวังว่าจะช่วยคนได้)
ฉันลองคำตอบทั้งหมดที่ให้ไว้ข้างต้นไม่มีอะไรทำงาน
ในที่สุดก็ทำงานหลังจากอัปเดตเป็นโยเซมิตี
ฉันประสบปัญหาเดียวกันการตั้งค่ารหัสประจำตัวที่ถูกต้องสามารถแก้ไขปัญหาได้ (Build settings-> Identity Signing Code)
ตามคำถามทางเทคนิคของ Apple "ใบรับรององค์กรสำหรับนักพัฒนา iOS และมาตรฐานทั้งหมดที่สร้างขึ้นหลังจากที่วางจำหน่าย iOS 8 แล้วจะมีฟิลด์ ID ทีมใหม่ในสถานที่ที่เหมาะสมเพื่อให้แอป Swift ภาษาสามารถทำงานได้"
หากคุณเพิ่มสามเฟรมเวิร์กผ่าน Embedded Binaries เฟรมเวิร์กเหล่านี้จะถูกเพิ่มไปยัง Linked Frameworks และ Libraries ด้วย ลบสามรายการในLinked Frameworks และ Librariesจะช่วยแก้ปัญหา
วิธีการที่มหัศจรรย์เช่นเปิด Xcode ใหม่และรีสตาร์ท Mac ไม่ทำงานกับฉัน
การเพิ่ม Framework เป็น "Embedded Binary" แทนที่จะเป็นเพียง "Linked Frameworks and Libraries" - แก้ไขปัญหาของฉัน
ฉันยังตั้งค่าเนื้อหาที่ฝังด้วยการตั้งค่าสถานะ Swift Code เป็น YES
อัปเกรดเป็นเวอร์ชันล่าสุดของ OS X (Yosemite)
หลังจากทดลองผิดพลาดหลายชั่วโมงฉันก็มาถึงการแก้ไขปัญหานี้ - หากสิ่งนี้ใช้กับกรณีของคุณแน่นอน
ฉันมีปัญหาเดียวกันจนกระทั่งฉันอัพเกรด Mac OS X จาก Mavericks เป็น Yosemite - แก้ไขปัญหาของฉันได้ด้วยหวังว่าจะแก้ไขปัญหาของคุณเช่นกัน
ฉันลองวิธีแก้ไขปัญหาทั้งหมดที่พบในเว็บรวมถึง Apple และใบรับรองใหม่ ปราศจากความสำเร็จ.
วิธีเดียวที่ฉันสามารถเรียกใช้ xcode หลังจากพยายาม 6 เดือนคือการสร้างบัญชีใหม่บน macbook ของฉัน
โดยปกติแล้วข้อผิดพลาดนี้จะหายไปหากคุณเพิ่มห้องสมุดนี้ไปยังส่วน "คัดลอกไฟล์" ในเฟสการสร้างของคุณ
และถ้าทั้งหมดข้างต้นไม่ได้ช่วยให้คุณและคุณจะผิดหวังจริง ๆ ... ลองใช้เคล็ดลับที่ดีที่สุดของทั้งหมด: Clean
และเพื่อให้แน่ใจClean Build Folder
ด้วย :) หวังว่าจะช่วยใครซักคน!
ไม่มีวิธีแก้ปัญหาใดที่ดูเหมือนจะใช้ได้ผลสำหรับฉันอย่างสม่ำเสมอ หลังจากประสบความสำเร็จในการวิ่งสองสามครั้งมันก็จะล้มเหลวอีกครั้ง การตั้งค่าสถานะ "เนื้อหาที่ฝังตัวมีรหัส Swift" ถูกตั้งค่าเป็น YES เสมอสำหรับฉัน
กลายเป็นว่าฉันจะตั้ง Xcode ให้เป็นแบบ 6.3 ได้ การเปลี่ยนกลับเป็น 3.2- เข้ากันได้แก้ไขได้:
ผมเคยมีปัญหานี้เช่นกันเพียง libswiftXCTest.dylib
แต่มันไม่ได้ตำแหน่ง
การแก้ปัญหาคือการเพิ่มเพื่อเป้าหมายการทดสอบในXCTest.framework
Build Phases/Link Binary with Library
ฉันได้รับข้อผิดพลาดนี้แม้ว่าฉันจะพยายามสร้างเป้าหมายหลัก
สิ่งนี้ปรากฏขึ้นเมื่อฉันเพิ่มเป้าหมายส่วนขยายวันนี้ใหม่ด้วยภาษา Swift ในโครงการเก่า แก้ไขได้ง่ายด้วยการอัพเดตโครงการเป็นการตั้งค่าที่แนะนำ Xcode 6.0.1
ฉันได้รับปัญหาเดียวกันโดยใช้ Mavericks, Xcode 6.1.1, การทดสอบ iPhone5 กับ iOS 8.1.1 ฉันลองวิธีแก้ปัญหาที่เป็นไปได้ทั้งหมดรวมถึงใบรับรองใหม่และโปรไฟล์การจัดสรร แต่ไม่มีอะไรช่วย ฉันไม่ได้เปลี่ยนแปลงไปEmbedded Content Contains Swift Code
และRunpath Search Paths
ทั้งในระดับโครงการและระดับเป้าหมาย
ตอนนี้ฉันได้ติดตั้งโยเซมิตีแล้วและหากไม่มีการเปลี่ยนแปลงเพิ่มเติมใด ๆ มันก็เริ่มทำงานได้
ปัญหาเดียวกันที่นี่สำหรับฉันมันคือ Crashlytics / ผ้า / เบต้า / Twitter / อะไรก็ตามที่พวกเขาเรียกตัวเองว่าอัปโหลดไบนารีที่ขาดกรอบงานฝังตัว ถ้าฉันสร้างไฟล์เก็บถาวรแล้วส่งออกการสร้างองค์กรในแบบมาตรฐานพวกเขาทำงานได้ดี
สภาพแวดล้อมของฉัน: Cocos2d 2.0, Box2d, Objective C
นอกจากทำตามคำตอบอื่น ๆ ข้างต้นแล้วในที่สุดฉันก็ไปที่แท็บทั่วไปและทำให้เป็นตัวเลือก WatchKit
หลังจากหลายเดือนหลายเดือนพยายามทำทุกอย่างที่นี่ ... นิยามของความวิกลจริต ... การเริ่มต้น Xcode ภายใต้ผู้ใช้ Mac ใหม่ได้แก้ไขให้ฉัน
ฉันลบ ~ / Library / Developer / * และติดตั้ง Xcode อีกครั้งดังนั้นจึงไม่มีข้อมูลที่จะจัดรูปแบบเพื่อให้ทำงานได้
otool