Saya mencoba menjalankan aplikasi Swift di iPhone 4s saya. Ini berfungsi dengan baik di simulator, dan teman saya berhasil menjalankannya di iPhone 4-nya. Saya memiliki iOS 8 dan rilis resmi Xcode 6.
saya telah mencoba
- Mulai ulang Xcode, iPhone, komputer
- Pembersihan & pembangunan kembali
- Mencabut dan membuat profil sertifikat / ketentuan baru
- Jalur Pencarian Runpath adalah
$(inherited) @executable_path/Frameworks
- Konten Tertanam Berisi Kode Swift adalah 'Ya'
- Identitas Penandatanganan Kode adalah pengembang
Di bawah ini adalah kesalahan secara keseluruhan
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
Jawaban:
Bagi saya tidak ada solusi sebelumnya yang berhasil. Kami menemukan bahwa ada bendera "Selalu Embed Swift Standard Libraries" di Build Settings yang perlu diatur ke YES. Secara default tidak ada!
Build Settings > Always Embed Swift Standard Libraries
Setelah mengatur ini, bersihkan proyek sebelum membangun lagi.
Untuk pembaca yang tertarik beberapa penjelasan Bagian terpenting adalah:
Bendera itu sebelumnya disebut
Embedded Content Contains Swift Code
sumber
Cukup mengejutkan, yang saya lakukan hanyalah "Bersihkan" proyek saya (shift + cmd + K) dan berhasil. Tampaknya terkait dengan sertifikat.
sumber
Saya mulai mendapatkan kesalahan ini ketika saya menghapus:
dari
Runpath Search Paths
dalam pengaturan build saya. Mengganti itu memperbaiki semuanya lagi (syukurlah untuk kontrol sumber!)Saya tidak tahu bagaimana sampai di sana, tetapi tampaknya diperlukan untuk biner untuk menemukan runtime Swift yang tertanam.
sumber
@loader_path/../Frameworks
untuk tes unit macOS dan@loader_path/Frameworks
untuk tes unit iOS yang perlu ditambahkan.Untuk perangkat, Anda juga perlu menambahkan kerangka kerja dinamis ke
Embedded binaries
bagian diGeneral
tab proyek.sumber
Dalam Xcode 8 opsi untuk
Embedded Content Contains Swift Code
opsi tidak lagi tersedia.Telah diubah namanya menjadi
"Always Embed Swift Standard Libraries = YES"
sumber
Saya pikir ini adalah bug ketika sertifikat dihasilkan langsung dari Xcode. Untuk menyelesaikan (setidaknya dalam Xcode 6.1 / 6A1052d):
sumber
Oke, berbagi di sini penyebab lain kesalahan ini. Butuh beberapa jam untuk menyelesaikan masalah ini.
Dalam kasus saya, kebijakan kepercayaan sertifikat saya di Keychain Access adalah Always Trust , mengubahnya kembali ke pengaturan default menyelesaikan masalah.
Untuk membuka jendela pengaturan sertifikat, klik dua kali sertifikat dalam daftar sertifikat Akses Rantai Kunci.
sumber
Saya mengalami masalah ini dengan menjalankan tes Swift saya (tetapi bukan aplikasi saya). Ternyata bahwa tes yang diperlukan untuk memiliki lebih dari
@executable_path/Frameworks
di dalamnyaRunpath Search Paths
membangun pengaturan untuk target uji. Menyetel Jalur Pencarian Runpath ke yang berikut ini membuat saya tertarik:sumber
carthage copy-frameworks
karena itu adalah ketergantungan sekunder (kerangka kerja yang saya gunakan telah ditambahkan )Masalah ini terjadi lagi di Xcode 10.2 . Anda harus mengunduh dan menginstal paket berikut dari Apple. Ini menyediakan Dukungan Runtime Swift 5 untuk Alat Baris Perintah .
https://support.apple.com/kb/DL1998?locale=en_US
sumber
msvcrt.dll
Anda harus mengatur
Runpath Search Paths
untuk@executable_path/Frameworks
seperti yang ditunjukkan pada tangkapan layar Pengaturan Bangun berikut:Jika Anda memiliki kerangka kerja tertanam yang dibuat di Swift, maka Anda dapat mengatur ke
YES
Opsi BangunEmbedded Content Contains Swift Code
.sumber
otool -L
karena para dylib ini memberitahuku bahwa mereka sudah menggunakan@rpath/...
jalur mereka sendiri. Sekarang, dengan mengatur Runpath Search Path ke path folder itu, saya dapat menjalankan alat saya dan itu akan menemukan dylibs yang disimpan dalam folder di sebelahnya.@rpath/libswiftAppKit.dylib
. Suatu masalah mengarahkan saya untuk mengetahui bahwa saya harus menambahkan searchpath:@executable_path/../Frameworks/
berdasarkan instruksi ini . Apakah ini hanya berlaku untuk struktur proyek saya, saya tidak bisa mengatakannya. Sebagai catatan, saya tidak perlu membersihkan DerivedData agar pengaturan ini berlaku!Saya pikir Apple telah meringkasnya di bawah aplikasi Swift lumpuh saat mencoba merujuk pustaka Swift libswiftCore.dylib
Dikutip dari T&J Teknis QA1886 :
Ketika orang-orang AirSign menyatakan akar masalah dari atribut OU yang hilang di bidang subjek dari sertifikat In-House .
Subjek: UID = 269J2W3P2L, CN = Distribusi iPhone: Nama Perusahaan, OU = 269J2W3P2L , O = Nama Perusahaan, C = FR
Saya memiliki sertifikat pengembangan perusahaan, membuat yang baru menyelesaikan masalah.
sumber
Mari proyek P mengimpor perpustakaan kustom L, maka Anda harus menambahkan L ke
P -> Build Phases -> Embed Frameworks -> +
. Itu bekerja untuk saya.sumber
Cara paling mudah dan mudah untuk diabaikan: bersihkan dan bangun kembali.
Ini memecahkan masalah setelah mencoba jawaban di atas dan tidak berhasil.
sumber
Saya mengalami masalah yang sama setelah pindah ke mac baru, dan setelah jam, mencoba semua jawaban yang disarankan dalam pertanyaan, tidak ada yang berhasil untuk saya.
Solusi bagi saya adalah menginstal sertifikat yang hilang ini. http://developer.apple.com/certificationauthority/AppleWWDRCA.cer
Temukan jawabannya di sini. https://stackoverflow.com/a/14495100/976628
sumber
Ubah Salin Sumber Daya Pods untuk target dari:
untuk:
sumber
Saya dipecahkan dengan menghapus data yang diturunkan dan kali ini berfungsi dengan benar. Mencoba dengan Xcode 7.3.1GM
sumber
Pesan kesalahan ini juga dapat disebabkan ketika memutakhirkan Xcode (dan selanjutnya ke versi baru Swift) dan proyek Anda menggunakan kerangka kerja yang dibangun / dikompilasi dengan versi Swift yang lebih lama / sebelumnya.
Dalam hal ini, membangun kembali kerangka kerja dan menambahkannya kembali akan memperbaiki masalah.
sumber
Setelah mencoba semuanya, saya akhirnya menemukan, bahwa bangunan itu tampaknya tidak selalu mencakup setiap detail lagi dan lagi. Mungkin untuk mempercepat proses ... Untuk memastikan kemasan SELURUH sebelum berjalan pada perangkat, bersihkan dulu: Shift-Cmd-K. Kemudian bangun dengan: Cmd-B. Setelah itu jalankan di perangkat Anda. Mudah. Hormat kami pada kalian semua yang baik di tempat itu!
sumber
Dalam kasus saya, itu hanya nama target saya:
Saya menamainya seperti ini: MyApp.something dan masalah yang sama muncul. Tetapi saya melihat di jendela build Settings, nama modul produk saya telah diubah seperti MyApp-something ini . Jadi, saya menghapus titik di nama target saya ( MyAppSomething ) dan masalah itu hilang.
sumber
Bagi saya, setelah mencoba semuanya tanpa hasil, yang berhasil adalah menghapus
@executable_path/Frameworks
dariPackaging section
(tidak tahu bagaimana bisa ada di sana di tempat pertama)sumber
Tidak ada solusi yang bekerja untuk saya. Nyalakan kembali telepon. Aneh tapi berhasil.
sumber
tidak ada solusi yang tampaknya berhasil tetapi ketika saya mengubah izin dari World Wide Developer cert untuk
Use System defaults
kemudian bekerja. Saya telah memasukkan langkah-langkah dan tangkapan layar di tautan di bawah iniSaya mendorong Anda untuk mencatat tiket dalam laporan bug apel sebagaimana disebutkan di sini karena Apple benar-benar harus mengatasi kesalahan besar ini: https://stackoverflow.com/a/41401354/559760
sumber
Xcode 7.2, iOS 9.2 di satu perangkat, 9.0 di lainnya. Keduanya memiliki kesalahan. Tidak tahu apa yang menyebabkan perubahan itu, tetapi solusi di atas untuk WWDR benar bagi saya. Instal sertifikat itu dan masalah terpecahkan.
https://forums.developer.apple.com/message/43547 https://forums.developer.apple.com/message/84846
sumber
Ada banyak jawaban di sana tetapi mungkin jawaban saya akan membantu seseorang.
Saya mengalami masalah yang sama, aplikasi saya berfungsi dengan baik di Simulator tetapi pada Perangkat mengalami crash karena aplikasi saya Makan Siang dan memberikan kesalahan seperti di atas. Saya sudah mencoba semua jawaban dan solusi. Dalam Kasus Saya, Proyek Saya, saya memiliki beberapa target. Saya telah membuat duplikat target B dari target A. Target B berfungsi dengan baik sementara target A jatuh. Saya menggunakan aset Gambar yang berbeda untuk setiap target. Setelah mencari dan melakukan google saya telah menemukan sesuatu yang dapat membantu seseorang.
Hentikan aplikasi mogok saat saya mengubah nama aset Luncurkan gambar untuk kedua aplikasi. mis. Target A Launch Image nama aset LaunchImage A. Target B Makan Siang Nama aset Gambar LaunchImage B dan ditetapkan dengan benar di Tab Umum setiap target. Aplikasi Saya berfungsi dengan baik.
sumber
Bagi saya membangun aplikasi Swift baris perintah MacOS yang bergantung pada lib Swift pihak ke-3 (misalnya SQLite), tidak satu pun solusi di atas yang berfungsi. Apa yang berhasil adalah secara langsung menambahkan jalur berikut ke Jalur Pencarian Runpath saya di Pengaturan Bangun:
/Applications/Xcode.app/Contents//Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/
Melakukan hal itu memang memberi peringatan saat runtime mengatakan bahwa Xcode telah menemukan 2 versi libswiftCore - yang masuk akal. Kecuali itu tidak termasuk baris yang mengakibatkan Xcode tidak menemukan versi libswiftCore.
Bagaimanapun, itu akan berlaku untuk saya walaupun itu tampaknya tidak benar - aplikasi saya hanyalah sebuah utilitas yang saya tidak ingin distribusikan dan setidaknya itu berjalan sekarang!
sumber
Saya memiliki beberapa versi Xcode yang diinstal secara bersamaan. Kerangka kerja ini dibangun dengan versi Xcode yang lebih baru. Aplikasi yang saya coba kompilasi adalah dengan versi Xcode yang lebih lama. Ketika saya membersihkan dan mengkompilasi kerangka kerja dan aplikasi dengan versi Xcode yang sama maka semuanya berjalan baik.
sumber
Saya mulai mendapatkan kesalahan serupa ini untuk menguji penambahan file S3 menggunakan layanan AWS. Di bawah ini adalah kesalahannya. dyld: Library tidak dimuat: @ rpath / AWSAutoScaling.framework / AWSAutoScaling
Saya banyak mencari dan solusi di atas juga tidak membantu bagi saya. Tautan di bawah ini membantu saya mengatasi masalah ini.
https://forums.developer.apple.com/thread/21292
Yang mengatakan untuk memperbaiki masalah ini dengan mengunduh kembali WWDR (Otoritas Sertifikasi Hubungan Pengembang Apple Worldwide) .
sumber
Saya menggunakan Xcode 8.3.2. Bagi saya masalahnya adalah sertifikat AppleWWDRCA berada di sistem dan rantai masuk. Dihapus keduanya dan kemudian ditambahkan ke hanya login gantungan kunci, sekarang berfungsi dengan baik lagi. 2 hari hilang 😭
sumber
Saya menggunakan Xcode 8.3.3 dan Xcode 9.2. Solusi bagi saya adalah mengganti Xcode default saya dari 8 ke 9 menggunakan Xcode Select:
$ xcode-select --print-path
$ sudo xcode-select -switch /Applications/Xcode-9.2.app
Sunting: Sebenarnya apa yang tampaknya membantu di sini adalah bahwa Xcode 9.2 menggunakan data yang diturunkan dari Xcode 8.3.3. Bukan solusi tetapi setidaknya memungkinkan saya untuk bergerak maju dengan pekerjaan saya.
sumber
Jika Anda mendapatkan kesalahan seperti ini:
dan gunakan CocoaPods dalam kerangka kerja Anda, kemudian coba edit
Podfile
dan hapusinherit! :search_paths
dariTest
target, dan jalankanpod install
kembali.Untuk detail lebih lanjut, lihat https://github.com/CocoaPods/CocoaPods/issues/8868 .
sumber