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?
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?
Jawaban:
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!
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
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.
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.
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.
Mulai ulang Xcode, lalu komputer dan iPhone
Pergi ke pengaturan build proyek dan atur Always Embed Swift Standard Libraries
(sebelumnya Embedded Content Contains Swift Code
) flag keYES
Buka pengaturan proyek build dan tambahkan @executable_path/Frameworks
ke Runpath Search Paths
opsi
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
@executable_path/../Frameworks
mana proyek iOS memerlukannya tanpa ..
di tengah. Mengubah nilai ini penting jika Anda mengonversi target dari satu OS ke yang lain.
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
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.
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!
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.
Saya memiliki proyek Obj-C di mana saya mulai menambahkan file sumber cepat. Berikut ini yang memperbaiki masalah bagi saya:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
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.
Coba tahan Alt, lalu pergi ke Produk -> Bersihkan Folder Bangun ...
Semoga ini bisa membantu seseorang ..
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:
DerivedData
dan Build
direktori. Lihat di bawah Preferensi untuk lokasi DerivedData
. Build
harus ada di folder proyek Anda.@executable_path/Frameworks
. Itu hal yang mudah. Jika Anda melakukan pembuatan baris perintah sendiri, Anda mungkin membuat .ipa
file sendiri untuk diunggah. Dalam hal ini Anda perlu memastikan yang berikut:
SwiftSupport/iphoneos
sama 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
.codesign
pustaka dan file kerangka kerja ( Frameworks
di bawah dalam .app
folder) pertama dan kemudian menandatangani seluruh .app
pohon. The .app
pohon harus ditandatangani dengan entitlements.plist
tetapi tidak kerangka.Mudah-mudahan ketika Swift 3.0 keluar dan kita tidak perlu lagi membundel Swift dengan aplikasi kita, semua masalah ini akan hilang.
Saya mengalami masalah ini menggunakan mobileprovision Ad Hoc (atau perusahaan) dengan sertifikat produksi. Beralih ke sertifikat pengembangan dan mobileprovision menyelesaikan masalah ini.
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.
Runpath Search Paths
membangun pengaturan ke: $(inherited) @executable_path/Frameworks
. 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.)
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"
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.
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.
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
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.
Biasanya kesalahan ini akan hilang jika Anda menambahkan perpustakaan ini ke segmen "Salin File" di Fase Bangun Anda.
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:
Saya punya masalah ini juga, hanya saja tidak ditemukan libswiftXCTest.dylib
.
Solusinya adalah menambah XCTest.framework
target Tes, di Build Phases/Link Binary with Library
. Saya mendapatkan kesalahan ini bahkan ketika saya mencoba membangun target utama.
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
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 Code
dan Runpath Search Paths
pada level Proyek dan level Target.
Saya sekarang telah menginstal Yosemite, dan tanpa perubahan lebih lanjut, itu mulai berfungsi.
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.
otool