dyld: Library tidak dimuat: @ rpath / libswift_stdlib_core.dylib

205

Saya mendapatkan kesalahan ini setelah menambahkan kelas Swift ke proyek Xcode lama.

dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib

Bagaimana saya bisa membuat proyek berjalan lagi?

Anton
sumber
Anda juga mungkin ingin melihat stackoverflow.com/questions/38364320 yang menunjukkan cara men-debug menggunakan iniotool
Jim Hayes
2017 - luar biasa, hanya memulai ulang Xcode memecahkan masalah keji ini untuk saya.
Fattie

Jawaban:

152

Bagi saya tidak ada solusi sebelumnya yang berhasil. Kami menemukan bahwa ada bendera ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES(dalam versi sebelumnya: "Konten Tertanam Berisi Kode Swift") dalam Pengaturan Bangun yang perlu diatur ke YA. Secara default TIDAK ada!

mukaissi
sumber
Ini memperbaikinya bagi saya juga, saya mengubah pengaturan untuk ekstensi ke true. Proyek ini objc tetapi ext cepat dan tidak bekerja sejak awal
Cristi Băluță
Ini juga resolusi saya. Saya memiliki proyek aplikasi iOS yang ada (ObjC) yang saya tambahkan Ekstensi Hari Ini (target baru dalam proyek, ekstensi adalah plugin untuk aplikasi utama). Saya harus masuk ke pengaturan target aplikasi dan mengaktifkan masalah Pengaturan Bangun dan biola ... hilang. Masuk akal, tetapi mengingat berapa banyak hal lain yang dikonfigurasikan secara otomatis oleh Xcode 6.0 untuk Anda, sayang sekali opsi penting ini diabaikan.
hsoi
Ini memperbaiki masalah saya - kami memiliki proyek lama dengan banyak ObjC, yang baru-baru ini kami mulai menambahkan Swift ke. Meskipun IPA dibangun dan termasuk pustaka Swift, itu tidak berfungsi pada beberapa perangkat iOS7 sampai pengaturan build ini diperiksa dan kami melakukan IPA baru. Ini berfungsi di semua perangkat bermasalah kami.
Kendall Helmstetter Gelner
1
Tidak ada yang berhasil selain ini. Anda penyihir freakin, Tuan yang baik!
Ricky Hartmann
2
Konten Tertanam Berisi Kode Swift yang tidak digunakan lagi ALWAYS_EMBED_SWIFT_STANDARD_LIBRARY
nivritgupta
91

Kesalahan ini dapat terjadi jika terjadi kesalahan selama konversi proyek Objective-C untuk mulai menggunakan Swift. Masalahnya adalah bahwa pengaturan build Linker tidak pernah dikonfigurasi dengan benar, jadi Anda harus melakukannya dengan tangan. Cari pengaturan build Runpath Search Paths dan atur ke:

$(inherited) @executable_path/Frameworks

masukkan deskripsi gambar di sini

EDIT: Saya juga harus menambahkan bahwa telah ada serentetan kesalahan baru-baru ini yang disebabkan oleh sesuatu yang sama sekali lain - Apple membuat perubahan pada Swift sendiri, dimulai dari mungkin Xcode 6.1 atau 6.1.1. Satu-satunya solusi tampaknya keluar dari Xcode, hancurkan sertifikat Anda di Akses Keychain, buka Pusat Anggota dan hapus semua sertifikat dan profil (kecuali profil untuk aplikasi di Store - Anda tidak dapat menghapusnya), dan kemudian mulai seluruh proses permintaan sertifikat dari awal.

matt
sumber
3
Bekerja untukku. Telah ditingkatkan ke versi Xcode terbaru, dan menemukan bahwa jalur pengaturan ini di proyek saya mengarah ke versi yang lebih lama.
ObjectiveTC
1
bekerja!! kamu menyelamatkan hariku! Saya menggunakan kontrol GitHub cepat di objektif C dengan xcode 6 GM. Terima kasih.
imthegiga
1
Ini juga bekerja untuk saya. Restart Xcode tidak.
Dan Loewenherz
1
bekerja untukku. Btw, saya mendapat "Alasan: gambar tidak ditemukan" di akhir pesan kesalahan.
Peter Zhou
2
Terima kasih Tuhan! Itu dia!
BoilingLime
79

Saya tidak begitu yakin mengapa pertanyaan ini sedang downvoting, saya punya masalah ini juga ketika saya pertama kali mencoba menggunakan Swift dengan proyek yang ada. Restart Xcode juga memperbaiki ini untuk saya.

Adam Fox
sumber
20
Saya mencoba menggunakan swift dalam proyek iOS baru dan saya mendapatkan kesalahan itu ketika mencoba berjalan pada perangkat iOS 8, tetapi tidak di simulator. Mulai ulang Xcode, laptop saya atau ponsel saya tidak memperbaiki masalah. Apakah ada solusi yang lain?
David Skrundz
2
Sayangnya ini tidak berfungsi untuk saya di bawah Beta 4, mencoba meluncurkan aplikasi Mac yang menggunakan kerangka kerja berbasis Swift.
Craig Otis
Harap sertakan tautan @Developer dalam jawaban Anda karena sangat membantu.
Lachezar Todorov
Coba ini, tetapi bersihkan juga.
Scott McKenzie
55

Saya sudah lama mencari masalah ini. Ada beberapa alasan yang menyebabkan masalah ini.

Jika Anda menghadapi ketika Anda dan Swift kode / pustaka dalam proyek Objectice C Anda harus mencoba Solusi 1-2-3

Jika Anda menghadapi masalah ini dengan Solusi proyek Swift 4 baru yang akan cocok untuk Anda.

Solusi 1:

Mulai ulang Xcode, lalu komputer dan iPhone

Solusi 2:

Pergi ke pengaturan build proyek dan atur Always Embed Swift Standard Libraries(sebelumnya Embedded Content Contains Swift Code) flag keYES

Solusi 3:

Buka pengaturan proyek build dan tambahkan @executable_path/Frameworkske Runpath Search Pathsopsi

Solusi 4:

Jika tidak ada di atas yang berfungsi, ini seharusnya. Apple tampaknya merupakan sertifikat yang ditambal ninja sebagaimana disebutkan dalam pos AirSign

Di sertifikat InHouse

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR

mereka menambahkan bidang baru bernama OU

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

jadi Anda harus membuat ulang sertifikat dan ketentuan

accfews
sumber
1
Iklan 2: Sekarang disebut "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARY" (lihat komentar di bawah jawaban yang diterima).
Raphael
1
Saya ingin menambahkan ... proyek macOS mensyaratkan di @executable_path/../Frameworksmana proyek iOS memerlukannya tanpa ..di tengah. Mengubah nilai ini penting jika Anda mengonversi target dari satu OS ke yang lain.
Matt Gallagher
41

Dalam kasus saya, saya mencoba mengimpor kerangka kerja khusus dan mendapatkan kesalahan serupa. Ternyata saya harus mengimpor kerangka kerja di Binari Tertanam daripada ke Framework dan Perpustakaan Tertaut.

Binari Tertanam berada di bawah Pengaturan Proyek -> -> Umum

C0D3
sumber
Selamatkan hari saya! Luar biasa!
Klaas
1
Saya melihat kesalahan ini, ketika mencoba menggunakan kerangka kerja yang dikompilasi yang ditulis dengan cepat (alih-alih menyematkan file sumber sebagai target terpisah). Solusi di atas bekerja untuk saya juga.
alex da franca
Terima kasih banyak, Selamat hari penuh saya.
Badrinath
1
Bekerja untuk saya setelah mencoba menghubungkan kerangka kerja yang sebagian ditulis dengan cepat ke dalam proyek lama yang sepenuhnya obyektif-c. Pengaturan sebenarnya di bawah pengaturan build. Informasi lebih lanjut di sini: stackoverflow.com/questions/24163870/…
Pellet
Ini berada di bawah pengaturan Target, bukan proyek, hanya untuk memastikan.
Legoless
16

Untuk pengembang yang memiliki masalah ini dengan build distribusi Adhoc / Perusahaan,

Buat sertifikat produksi dari portal dev dan kemudian buat kembali profil distribusi. Unduh dan pasang keduanya di Mac Anda. Pastikan Anda memilih profil yang tepat di pengaturan build Xcode Anda dan membangun kembali aplikasi Anda.

Sumber: https://devforums.apple.com/message/1022908#1022908

bantuan timur
sumber
Meskipun tautan ini dapat menjawab pertanyaan, tautan terputus. Karena itu, Anda disarankan untuk memasukkan bagian-bagian penting dari tautan. Jawaban hanya tautan tidak disarankan.
Pokechu22
Bekerja untuk aplikasi perusahaan saya. Terima kasih!
sylvanaar
15

Solusi 5:

Dalam kasus saya, semua solusi yang disebutkan dalam jawaban accfews sangat membantu tetapi tidak ada yang berhasil. Saya memecahkan masalah saya dengan menambahkan perpustakaan cepat saya di bagian "Biner Tersemat" di bagian "Umum" dari target Proyek saya. Mungkin ini karena fakta bahwa saya telah memasukkan kerangka kerja cepat saya di ruang kerja saya? Apa pun yang dikompilasi sekarang! Bersiaplah Swift, saya di sini!

Chrstph SLN
sumber
Oke, itu sepertinya berhasil. Saya hanya mencoba untuk menulis perpustakaan kode cepat untuk proyek cepat. Entah bagaimana saya masih bertanya-tanya apakah ini benar. Namun saya senang kerjanya.
kpierce8
Saya telah memasukkan kerangka kerja saya di bagian "Salin Kerangka Kerja" pada tab Bangun Fase - tetapi satu kerangka kerja tidak dapat dipilih di sini. "Umum" memungkinkan pemilihan kerangka kerja lain ini dan menambahkannya ke dalam Fase Bangun, dan aplikasi membangun dan menjalankan. Anehnya, saya masih bisa menjalankan aplikasi di simulator.
djbp
Terima kasih, Christophe. Seperti Anda, telah mencoba semua solusi, dan jelas tidak intuitif untuk memahami bahwa perpustakaan cepat tidak dapat diseret ke proyek ke yang lain hanya. Anda jelas perlu menempatkan perpustakaan ke bagian tertanam (alias modul swift lebih jelas, saya ragu mungkin ada jenis barang tertanam lainnya). Sekalipun Xcode bisa mendeteksinya secara otomatis dan melakukan pekerjaan untuk kita ... Tapi itu bukan tugas XCode kita yang tercinta;), di sini pasti membuang-buang waktu kita ...
Tn. Bonjour
Tambahan pula, jika perpustakaan sudah ada dalam daftar pastikan itu ditandai sebagai "Sematkan & Masuk". Ini memperbaiki masalah saya.
SquareBox
10

Restart sederhana Xcode memecahkan masalah untuk saya.

Anton
sumber
Aku akan menampar fanboy apel berikutnya yang mengolok-olok mengatur ulang Windows
Josh
5

Bagi saya, masalahnya adalah karena Otoritas Sertifikasi Hubungan Pengembang Apple Worldwide saya tidak valid.

Unduh dari sini: https://developer.apple.com/certificationauthority/AppleWWDRCA.cer

Seret dan letakkan di Akses Keychain, bersihkan proyek, dan jalankan.

Eric
sumber
Ini mulai terjadi setelah kami menambahkan kepemilikan CloudKit. Sebelum itu, saya kira tidak peduli bahwa sertifikat WWDR tidak valid.
CommaToast
3

Saya memiliki proyek Obj-C di mana saya mulai menambahkan file sumber cepat. Berikut ini yang memperbaiki masalah bagi saya:

  1. Menautkan: RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
  2. Swift Compiler - Pembuatan Kode: EMBEDDED CONTENT CONTAINS SWIFT = YES

Saya baru saja membuat proyek baru dari template Xcode 6.3 dan membandingkan pengaturan proyek dengan proyek asli lama saya.

pinzoni
sumber
3

Coba tahan Alt, lalu pergi ke Produk -> Bersihkan Folder Bangun ...

Semoga ini bisa membantu seseorang ..

stakahop
sumber
Ini tidak memberikan jawaban untuk pertanyaan itu. Setelah memiliki reputasi yang cukup, Anda dapat mengomentari setiap pos ; alih-alih, berikan jawaban yang tidak memerlukan klarifikasi dari penanya . - Dari Ulasan
Rakete1111
Itu terjadi setelah mencoba menambah kelas baru di proyek lama. Tidak ada informasi berapa umur proyek itu. Jadi, membersihkan proyek dan memaksa penyegaran cache masuk akal. Proyek lama juga menyiratkan ada kemungkinan bagus bahwa sertifikat diubah sementara itu, karena Produksi Apple dan sertifikat Pengembang berakhir setiap tahun. Baca tentang alasan utama kesalahan menurut Tanya Jawab Teknis apel di. developer.apple.com/library/ios/qa/qa1886/_index.html . Hal yang sama terjadi pada saya dan Clean Build Folder membuat proyek berjalan kembali. Biarkan orang mencoba ..
stakahop
Itu terjadi setelah memuat ulang sertifikat iOs saya. Clean (menu Produk) yang sederhana dan semuanya berfungsi dengan baik ;-)
Sébastien REMY
Bekerja dengan sempurna. Terima kasih.
iSofia
3

Ada banyak alasan mengapa hal ini terjadi. Baru saja menghabiskan akhir pekan yang menyenangkan menemukan masalah lain yang menyebabkan hal ini (urutan penandatanganan kode), saya ingin membuat ringkasan jawaban yang menyatukan semua solusi yang mungkin:

  1. Tambahkan Konten Tertanam Berisi Kode Swift ke proyek. Anda perlu mengatur tanda ini jika aplikasi Anda mengandung kode Swift.
  2. Proyek bersih . Selain Proyek> Bersihkan Anda juga dapat menghapus DerivedDatadan Builddirektori. Lihat di bawah Preferensi untuk lokasi DerivedData. Buildharus ada di folder proyek Anda.
  3. Pastikan Jalur Pencarian Runpath berisi@executable_path/Frameworks .
  4. Pastikan bahwa sertifikat Anda berisi ID Tim Apple Anda di bidang OU (Unit Organisasi) yang akan ditambahkan Apple untuk Anda, cukup cabut sertifikat distribusi Anda yang sudah ada dan buat yang baru, unduh, pasang di KeyChain, buat ulang semua profil penyediaan, unduh itu dan membangun kembali.
  5. Xcode restart. Jika semuanya pada dasarnya baik, tetapi Xcode belum sampai di sana.

Itu hal yang mudah. Jika Anda melakukan pembuatan baris perintah sendiri, Anda mungkin membuat .ipafile sendiri untuk diunggah. Dalam hal ini Anda perlu memastikan yang berikut:

  1. Pastikan versi file Swift di SwiftSupport/iphoneossama dengan versi diContents/YourApp.app/Frameworks Karena Swift belum kompatibel biner antara versi, Anda harus memastikan versi ini adalah yang Anda gunakan untuk membangun aplikasi. Anda dapat menemukan perpustakaan ini di bawah /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos.
  2. Tandatangani perpustakaan dan kerangka kerja terlebih dahulu . Anda perlu codesignpustaka dan file kerangka kerja ( Frameworksdi bawah dalam .appfolder) pertama dan kemudian menandatangani seluruh .apppohon. The .apppohon harus ditandatangani dengan entitlements.plisttetapi tidak kerangka.

Mudah-mudahan ketika Swift 3.0 keluar dan kita tidak perlu lagi membundel Swift dengan aplikasi kita, semua masalah ini akan hilang.

jlyonsmith
sumber
2

Saya mengalami masalah ini menggunakan mobileprovision Ad Hoc (atau perusahaan) dengan sertifikat produksi. Beralih ke sertifikat pengembangan dan mobileprovision menyelesaikan masalah ini.

MacTeo
sumber
4
Itu mungkin memungkinkan Anda menjalankan aplikasi dalam pengembangan, tetapi bagaimana Anda akan menyebarkan jika profil ad-hoc atau perusahaan tidak bekerja?
Kristopher Johnson
2

Proyek saya adalah proyek Swift dengan beberapa kelas Objective-C. Saya memiliki masalah yang sama ketika ditandatangani dengan sertifikat inHouse (perusahaan) lama.

Langkah-langkah berikut memperbaiki ini untuk saya.

  1. Buat dan gunakan sertifikat baru dan ketentuan seluler.
    (Ref. AIRSIGN's blog )
  2. Set Runpath Search Pathsmembangun pengaturan ke: $(inherited) @executable_path/Frameworks.
    (Ref. Matt's answer )
jqgsninimo
sumber
2

Solusi 6:

Dalam kasus kami, Sertifikat Distribusi Perusahaan telah dicabut. Membuat sertifikat baru dan memperbarui profil penyediaan memperbaiki masalah tersebut.

(Tampaknya ada banyak penyebab berbeda untuk kesalahan ini. Semoga ini bisa membantu seseorang.)

picciano
sumber
Ini menyelesaikan masalah saya. Sialan, betapa buang-buang waktu untuk mencoba memperbaikinya. Saya harap ini memecahkan masalah pengguna lain. Saya dapat men-debug aplikasi saya dengan kerangka kerja kustom saya tetapi tidak bisa menjalankan versi mesin pembuat di jenkins. Mencabut sertifikat distribusi saya dan membuat profil penyediaan perusahaan baru memperbaiki build untuk saya.
cynistersix
2
Ini sama dengan Solution 4
accfews
2

Saya mencoba semua jawaban yang diberikan di atas, tidak ada yang berhasil.

Akhirnya berfungsi setelah memperbarui ke Yosemite

Prabu
sumber
2

Saya telah menghadapi masalah yang sama, pengaturan identitas tanda kode yang tepat memecahkan masalah (Build settings-> Code Signing Identity).

Sesuai pertanyaan teknis Apple "Semua perusahaan dan sertifikat pengembang iOS standar yang dibuat setelah iOS 8 dirilis, memiliki bidang ID Tim baru di tempat yang tepat untuk memungkinkan aplikasi bahasa Swift dijalankan"

Saikiran K
sumber
2

Jika Anda menambahkan tiga kerangka kerja melalui Binari Tertanam, mereka akan ditambahkan ke Kerangka Kerja Tertaut dan Perpustakaan juga. Hapus tiga entri di Framework dan Perpustakaan Tertaut akan menyelesaikan masalah.

Metode ajaib seperti meluncurkan kembali Xcode dan me-restart Mac tidak bekerja pada saya.

Arbipher
sumber
Terima kasih telah meningkatkan format. Terlihat lebih baik. "Framework dan Perpustakaan Tertaut" adalah satu bagian, bukan dua. Saya mengubah "dan" menjadi tebal. @ Bartłomiej
Arbipher
特 来 shua fen zi shu bu ding
icemelon
2

Menambahkan Kerangka sebagai "Biner Tersemat" bukan hanya "Kerangka Kerja Tertaut dan Pustaka" - Memperbaiki masalah saya.

Saya juga mengatur tanda Embedded Content Contains Swift Code ke YES.

Naveen Shan
sumber
1

Tingkatkan ke Versi Terbaru OS X (Yosemite)

Setelah berjam-jam trial & error saya sampai pada penyelesaian masalah ini. - Jika ini berlaku untuk kasus Anda tentu saja.

Saya memiliki masalah yang sama sampai saya memutakhirkan Mac OS X dari Mavericks ke Yosemite. - Itu memperbaiki masalah saya, berharap itu memperbaiki masalah Anda juga

Malas aktif
sumber
1

Saya mencoba semua solusi yang ditemukan di web, termasuk untuk Apple dan sertifikat baru. Tanpa keberhasilan.

Satu-satunya cara saya bisa menjalankan xcode, setelah 6 bulan mencoba, adalah membuat akun baru di macbook saya.

Eldervaz Vaz
sumber
1

Biasanya kesalahan ini akan hilang jika Anda menambahkan perpustakaan ini ke segmen "Salin File" di Fase Bangun Anda.

raphael_mav
sumber
Ini bekerja untuk saya di XCode 7.2.1. Saya menggunakan + di panel Build Phases, memilih New Copy Files Phase, lalu menyeret kerangka kerja dari pohon ruang kerja ke bagian Copy Files. Akhirnya saya memilih Destination: Frameworks. Setelah bangunan bersih, aplikasi saya mulai seperti yang diharapkan.
Rob Smallshire
1

Dan jika semua hal di atas tidak membantu Anda dan Anda benar-benar frustrasi ... Cobalah trik terbaik dari semuanya: Cleandan hanya untuk memastikan juga Clean Build Folder. :) Semoga ini bisa membantu seseorang!

Georg
sumber
1

Tak satu pun dari solusi ini yang tampaknya bekerja secara konsisten untuk saya; setelah setiap pasangan yang berhasil, itu akan gagal lagi. Bendera "Embedded Content Contains Swift Code" selalu diatur ke YA untuk saya.

Ternyata saya akan menetapkan Xcode agar kompatibel dengan 6.3. Mengubahnya menjadi 3,2-kompatibel menyelesaikannya:

naskah merek
sumber
Terima kasih! Saya mencoba segalanya. Saya mengubahnya kembali menjadi 3,2, membersihkan proyek, memulai ulang Xcode dan berhasil
gabriellanata
1

Saya punya masalah ini juga, hanya saja tidak ditemukan libswiftXCTest.dylib.

Solusinya adalah menambah XCTest.frameworktarget Tes, di Build Phases/Link Binary with Library. Saya mendapatkan kesalahan ini bahkan ketika saya mencoba membangun target utama.

Tuan Zsolt
sumber
0

Ini muncul ketika saya menambahkan target ekstensi Today baru dengan bahasa Swift ke proyek lama. Diperbaiki dengan mudah dengan memperbarui proyek ke pengaturan yang disarankan. Xcode 6.0.1

Vilém Kurz
sumber
0

Saya mendapatkan masalah yang sama menggunakan Mavericks, Xcode 6.1.1, pengujian pada iPhone5 dengan iOS 8.1.1. Saya mencoba semua solusi yang mungkin termasuk sertifikat baru dan profil penyediaan, tetapi tidak ada yang membantu. Saya melakukan perubahan Embedded Content Contains Swift Codedan Runpath Search Pathspada level Proyek dan level Target.

Saya sekarang telah menginstal Yosemite, dan tanpa perubahan lebih lanjut, itu mulai berfungsi.

patrik
sumber
0

Masalah yang sama di sini, bagi saya itu adalah Crashlytics / Fabric / Beta / Twitter / Apa pun yang mereka sebut sendiri mengunggah biner yang hilang kerangka kerja tertanam. Jika saya membuat arsip dan kemudian mengekspor bangunan Perusahaan dengan cara standar, mereka bekerja dengan sangat baik.

rob5408
sumber
0

Lingkungan saya: Cocos2d 2.0, Box2d, Objective C

Selain melakukan jawaban lain di atas, saya akhirnya pergi ke tab Umum dan menjadikan WatchKit Opsional.

Target: Umum: Kerangka Tertaut dan Perpustakaan: WatchKit.framework: Opsional

Jim Rota
sumber
0

Setelah berbulan-bulan mencoba semuanya di sini ... Definisi kegilaan ... memulai Xcode di bawah pengguna Mac baru menyelesaikannya untuk saya.

Saya menghapus ~ / Library / Developer / * dan menginstal ulang Xcode- jadi tidak ada petunjuk apa lagi untuk memformat agar berfungsi.

langganan
sumber