Alasan: tidak ada gambar yang cocok ditemukan [ditutup]


129
dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/Stylist.app/Stylist
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib'
(lldb) 

Saya mendapatkan kesalahan ini saat membangun di iPhone saya. Saya dapat membangun di atas simulator. Saya telah mengatur ulang semua file ketentuan saya namun saya masih tidak dapat membangun di iPhone saya. Xcode saya seperti ini

masukkan deskripsi gambar di sini

Apakah ini masalah kerangka kerja atau masalah penandatanganan? Ini tidak terjadi di Xcode 6. Terima kasih.



Saya memecahkan masalah ini (setelah menemukan banyak jalan buntu pada SO) dengan mengubah izin pada sertifikat pengembang di seluruh dunia - lihat jawaban saya di sini: stackoverflow.com/a/41401399/559760 (semoga ini membantu!)
UKDataGeek

Pembaruan untuk iOS 13.3.1: jika Anda memiliki iOS yang kurang beruntung ini dan mencoba menginstal aplikasi dengan kerangka kerja bersarang, ketahuilah itu bug - perbarui ke 13.4.1 atau lebih baru, sudah dipecahkan
iago849

Jawaban:


389

Saya memiliki masalah ini sebelumnya karena secara tidak sengaja mencabut sertifikat saya. Lalu semua proyek cepat saya punya masalah ini. Ada dua cara untuk mengatasi ini:

Klik pada Produk → Bersihkan (atau CMD+ Shift+K )

Atau dengan secara manual membersihkan file pengaturan Xcode:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ~/Library/Caches/com.apple.dt.Xcode

1
gunakan di terminal
Jieyi Hu

Tidak masalah. Pilih jawaban saya jika Anda suka :)
Jieyi Hu

10
Saya pikir Alt + Clean akan melakukannya juga
jjxtra

9
Membersihkan proyek berhasil bagi saya: SHIFT + CMD + K
B-Rad

9
Apakah Anda menggunakan ID Apple non-pengembang untuk menginstal aplikasi ke ponsel Anda? Sepertinya iOS 13.3.1 telah merusak aplikasi yang diinstal dengan ID Apple gratis, tetapi hanya jika mengandung kerangka kerja tertanam. Jika mungkin untuk menautkan semua dependensi Anda sebagai pustaka statis dan bukan kerangka kerja (misalnya, jika Anda menggunakan Cocoapods, Anda dapat menghapus use_frameworks! Dari Podfile Anda), yang seharusnya memperbaiki masalah untuk saat ini.
Kashif Rabbani

30

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 membangun proyek dan mengatur Embedded Content Contains Swift flag Code ke YES

Solusi 3:

Buka pengaturan proyek build dan tambahkan @executable_path/Frameworks ke opsi Runpath Search Paths

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


Terima kasih, saya telah melakukan Solusi 1 ~ 3 dan tidak berfungsi. Saya telah membuat ulang sertifikat dan provisi dan tidak berfungsi juga
Satsuki

1
Saya menghadapi pesan kesalahan yang sama seperti yang diminta pada awalnya oleh Satsuki. Solusi 4 melakukan trik untuk saya. Saya memiliki masalah dengan Realm Framework tetapi hanya jika saya mencoba membuat arsip aplikasi saya dan kemudian menginstalnya melalui iTunes (jika penyebaran langsung ke perangkat lancar).
Peter Ivanics

4 melakukannya untuk saya juga! Berikut ini tautan ke pos AirSign
pshah

2
Bagaimana cara saya mengedit sertifikat InHouse?
Al Wang

1
1 dan 2 tidak bekerja untuk saya. Jendela -> proyek, hapus data yang diturunkan, perbaiki. Xcode inferior, buggy>. <
Cymric

27
Xcode->Product->Clean + Xcode Restart

Setelah mencoba banyak solusi lain yang disebutkan, untuk rasa malu abadi saya, melakukan Xcode-> Produk-> Bersihkan dan mulai ulang Xcode, lakukan triknya.


2
Saya juga melakukan banyak langkah yang disebutkan sebelumnya seperti mendapatkan WWRD, Memeriksa Runpath, dll .... Tidak ada yang berhasil sampai saya melakukan ini "Bersihkan". Terima kasih banyak!
Joe Famme

Saya harus memulai ulang Xcode, setelah beberapa pembersihan gagal. Ini tampaknya solusi yang terlalu jelas mengingat betapa sulitnya Apple membuat yang lainnya
Jeffrey Kern

19

Bagi saya, masalah ini muncul karena sertifikat WWRD - Tambang sudah mutakhir, tetapi karena alasan tertentu ia diatur ke 'selalu percaya' alih-alih 'gunakan standar sistem', yang tampaknya membuat perbedaan.


4
+1 untuk masalah sertifikat. Saya mencoba benar-benar SEGALA SESUATU, tetapi kemudian memperhatikan bahwa sertifikat pengembang saya diatur ke "Selalu Percaya" pada gantungan kunci. Mengubah ke "Gunakan Bawaan Sistem" seperti yang Anda katakan berfungsi dengan sempurna. Terima kasih!
tylermilner

1
Mencoba segalanya dan ini berhasil. Serius Mengapa apel tidak dapat memperbaikinya sebagai bagian dari Xcode ....
UKDataGeek

1
sangat PENTING: setelah mengubah akses sertifikat ke "gunakan sistem default" dalam, BERSIHKAN proyek (cmd + Alt + shift + K)
Roman Slyepko

2
Menyelamatkan teman hariku! terima kasih
andrea.rinaldi

Saya pikir ini adalah solusi ULTIMATE untuk masalah ini. Saya juga mencoba hampir semua solusi yang tersedia melalui internet tetapi tidak ada yang bekerja untuk saya kecuali ini. Solusi bagus ...
Er. Vihar

17

Jika Anda tidak sengaja mengatur ulang gantungan kunci Anda, ini dapat terjadi karena sertifikat Apple tidak ada di gantungan kunci. Aku mengikuti jawaban atas ini untuk memecahkan masalah saya.

Saya memiliki masalah yang sama dan dapat memperbaikinya dengan mengunduh ulang WWDR (Otoritas Sertifikasi Hubungan Pengembang Apple Seluruh Dunia). Unduh dari sini: http://developer.apple.com/certificationauthority/AppleWWDRCA.cer


1
memperbaikinya untuk saya setelah mentransfer Xcode dan profil pengguna saya dari satu Mac ke yang lain.
RTasche

1
Berfungsi untuk kasus saya, terima kasih!
Alice Chan

1
TERIMA KASIH SIR, ANDA ADALAH SEUMUR HIDUP
Josh O'Connor

Terima kasih, butuh waktu lama untuk menemukan ini.
loudmouth

14

Menghapus DerivedData membantu saya.

Melakukannya melalui Xcode -> Preferensi -> Lokasi -> mengklik tanda panah di belakang jalur DerivedData dan menghapus seluruh folder DerivedData di Finder.


terima kasih, bekerja untuk saya, cordova + xcode 7.2
jujule

1
Window > Projects > My Project > Derived Data > Deletemelakukan pekerjaan untuk saya.
Air Terjun Michael

Bekerja untuk saya di Xcode 10.1. Semua bekerja dengan baik tetapi dalam satu hari yang bahagia Xcode mulai menunjukkan kesalahan itu. Terima kasih.
Zhebzhik Babich

5

Itu terjadi di pihak saya ketika membangun aplikasi di baris perintah melalui xcodebuild dan xcrun PackageApplication, menandatangani aplikasi dengan profil perusahaan. Di server CI build kami, sertifikat ditetapkan ke "Selalu Percaya" di gantungan kunci (pilih sertifikat -> Dapatkan Info -> Percaya -> "Gunakan Bawaan Sistem" dapat diubah menjadi "Selalu Percaya"). Saya harus mengaturnya kembali ke "Use System Default" untuk membuat ini berfungsi. Awalnya kami menetapkan ini untuk "Selalu Percaya" untuk mengatasi dialog gantungan kunci yang muncul setelah pembaruan perangkat lunak dan pembaruan sertifikat.


3

Dengan risiko menabur lebih banyak kebingungan, saya mengalami masalah ini saat memperbarui ke XC8.

Tidak satu pun dari saran ini, maupun dari utas lainnya, yang menyelesaikannya. Apa yang DID bekerja, telah menghapus SEMUANYA dari fase build "Link Binary with Libraries", fase build "Target Dependencies", dan pengaturan umum "Linked Frameworks and Libraries".

FYI, saya menggunakan Carthage dan telah ditambahkan $(PROJECT_DIR)/Carthage/Build/tvOSke FRAMEWORK_SEARCH_PATHSpengaturan build, sehingga kerangka kerja saya dapat ditemukan.

FYI 2, proyek dan kerangka kerja ini, 100% cepat dan kerangka kerja sedang dibangun DEFINES_MODULE = YES.


DEFINES_MODULE = YA bekerja untuk saya. Proyek saya berisi objektif-C dan Swift.
Jason Huh

3
  1. Hapus aplikasi dari perangkat
  2. Bersihkan proyek ( CMD+ SHift+ K)
  3. Bangun / Jalankan di perangkat

2

Dikutip dari T&J Teknis QA1886 :

Aplikasi Swift mogok saat mencoba merujuk pustaka Swift libswiftCore.dylib.

T: Apa yang dapat saya lakukan tentang kesalahan pemuatan libswiftCore.dylib di konsol perangkat saya yang terjadi ketika saya mencoba menjalankan aplikasi bahasa Swift saya?

A: Untuk memperbaiki masalah ini, Anda harus menandatangani aplikasi menggunakan sertifikat penandatanganan kode dengan Unit Organisasi Subjek (OU) yang disetel ke ID Tim Anda. 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.

Biasanya kesalahan ini muncul di log konsol perangkat dengan pesan yang mirip dengan salah satu dari yang berikut: [....] [deny-mmap] file yang dipetakan tidak memiliki pengidentifikasi tim dan bukan biner platform: / private / var / mobile / Kontainer / Bundel / Aplikasi / 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

Sertifikat baru diperlukan saat membuat arsip dan mengemas aplikasi Anda. Bahkan jika Anda memiliki salah satu sertifikat baru, mengundurkan diri dari arsip aplikasi cepat yang ada tidak akan berfungsi. Jika dibuat dengan sertifikat pra-iOS 8, Anda perlu membuat arsip lain.

Penting: Harap berhati-hati jika Anda perlu mencabut dan menyiapkan sertifikat Distribusi Perusahaan yang baru. Jika Anda adalah pengembang Enterprise internal, Anda harus berhati-hati agar tidak mencabut sertifikat distribusi yang digunakan untuk menandatangani aplikasi yang masih digunakan oleh salah satu karyawan Enterprise Anda karena aplikasi apa pun yang ditandatangani dengan sertifikat distribusi perusahaan itu akan segera berhenti bekerja. Di atas hanya berlaku untuk sertifikat Distribusi Perusahaan. Sertifikat pengembangan aman untuk dicabut untuk pengembang iOS perusahaan / standar.

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.


adakah yang bisa menjelaskan hal ini dalam bahasa Inggris?
UKDataGeek

1

Anda mungkin tidak memiliki lengkungan yang benar di lib itu, Anda dapat melakukan a

file /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib

dan itu akan menunjukkan kepada Anda lengkungan yang ada di perpustakaan itu ... Saya tidak yakin bagaimana Anda menautkan, tetapi mungkin itu bukan cara yang benar (jika libswiftcore adalah perpustakaan pabrik, jika ada tambahan di perpustakaan maka itu mungkin tidak dikompilasi dengan benar)


Halo, Terima kasih atas jawaban Anda, saya punya pertanyaan. Dalam jawaban yang Anda katakan dan itu akan menunjukkan kepada Anda lengkungan yang ada di perpustakaan itu. bagaimana Anda menunjukkannya.
Satsuki

perintah ini disebut file ... tapi saya rasa Anda perlu menemukan versi lokal di mac Anda, daripada jalur di telepon ...
Grady Player

1

Saya juga mengalami masalah ini, namun tidak ada yang saya coba di atas dan di beberapa pos lainnya berhasil .. kecuali untuk ini.

Bagi saya, saya mengubah pengidentifikasi bundel karena kami memiliki bundel ID berbeda untuk distribusi dan pengembangan.

Perangkat keras saya diperbolehkan pada ketentuan ini dan akun tim saya valid tetapi itu melempar kesalahan di atas pada beberapa kerangka kerja lain.

Ternyata saya perlu menghapus versi lama aplikasi sepenuhnya dari ponsel saya. Dan tidak hanya menghapusnya dengan cara standar.

Solusi:

  1. Pastikan ponsel target terhubung
  2. dari dalam menu xcode klik [Window> Devices]
  3. pilih perangkat target di menu sebelah kiri.
  4. Di sebelah kanan adalah daftar aplikasi di dalam perangkat Anda. Temukan aplikasi yang coba Anda uji dan hapus.

Terbukti saat memasang aplikasi yang sama di bawah tim yang sama di bawah bundel ID yang berbeda, jika Anda tidak memulai sepenuhnya dari awal, ada beberapa referensi untuk kerangka kerja yang menjadi kacau.

Semoga ini bisa membantu seseorang.


ID bundel saya belum berubah. Dan salah satu saran di atas tidak memperbaiki hal-hal (-> Bersihkan; hapus manual; restart semuanya; dan secara manual menghapus aplikasi dari iPhone setiap waktu; dan banyak lagi). Hanya mengikuti saran Christopher, perbaiki pikiran seketika tanpa membersihkan apa pun lagi. [iphone 5; iOS 9.3.5; Xcode 7.3]
marco

1

Saya baru saja membersihkan proyek dan Clean Build Foldermenu alt Produk


Pintasan untuk membersihkan folder bangun: alt + cmd + shift + k
Ori

1

Langkah-langkah di bawah ini berhasil.

1) Di pustaka dinamis, nama pemasangan harus "@loader_path"

2) Dalam proyek utama, Jalur Pencarian Runpath harus "@loader_path" dan "@ loader_path / Frameworks"

3) Dari tampilan gantungan kunci bekas -> tampilkan sertifikat kedaluwarsa dan hapus semuanya.

4) Menghapus sertifikat distribusi dan menginstal ulang.

5) Unduh developer.apple.com/certificationauthority/AppleWWDRCA.cer dan diinstal.


1

Saya baru-baru ini menghadapi masalah ini. Saya mencoba semua solusi yang mungkin tetapi tidak ada yang berhasil. Pada akhirnya saya hanya keluar dari Xcode, menghapus sertifikat di gantungan kunci dan menginstal semuanya segar dan restart Mac. Untungnya itu bekerja seperti pesona :)


1

Saya memiliki masalah yang sama dan dapat memperbaikinya dengan mengunduh ulang WWDR (Apple Worldwide Developer Relations Certification Authority). Unduh dari sini :

dan setel ke Selalu Percaya pada gantungan kunci. Berubah menjadiUse System Default

ini bekerja untuk saya, saya harap ini membantu Anda


1

Dalam kasus saya, gantungan kunci menunjukkan sertifikat sebagai tidak tepercaya, untuk menyelesaikan masalah ini saya telah menetapkan opsi perwalian sertifikat sebagai "Selalu percaya". Mengatur sertifikat ke "Selalu percaya" adalah penyebab utama kecelakaan. Saya tidak dapat menginstal aplikasi ke perangkat. Selesaikan ini dengan menetapkan opsi trust ke "System defaults" alih-alih "Always trust". Ini bekerja untuk saya.


1

Anda melihat gejala yang sama jika Anda bekerja di Xamarin Studio dan Anda sedang referensi perpustakaan portabel yang Anda perlu melakukan umpan PCL dan beralih trik. Ini terjadi jika proyek referensi sudah ketinggalan zaman sehubungan dengan perpustakaan referensi. Saya menemukan bahwa saya telah memperbarui perpustakaan umum saya ke kerangka kerja yang lebih baru, memperbarui paket saya tetapi belum memperbarui paket iOS saya untuk mencocokkan. Memperbarui paket memecahkan kesalahan ini untuk saya.


1

Anda mungkin masih mendapatkan masalah ini setelah mencoba @Jieyi Hu. mungkin tampaknya sudah diperbaiki tetapi jika itu datang lagi (mungkin di xCode 9).

Namun, penyelesaian ini tampaknya berhasil (berlaku untuk Cocoapods 1.5.x):

  1. bersihkan proyek Anda
  2. tutup Xcode dan hapus DerivedData
  3. buka Podfile di proyek Anda, dan tambahkan ini:

    post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings.delete('CODE_SIGNING_ALLOWED') config.build_settings.delete('CODE_SIGNING_REQUIRED') end end

  4. pembaruan pod

Sumber:

https://github.com/evgenyneu/Cosmos/issues/105

https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911

Terima kasih @ Cédric


0

Anda dapat membuat ulang sertifikat Anda dan memulai kembali iPhone Anda.

Ini bekerja untuk saya, saya harap ini membantu Anda.


Tolong jelaskan bagaimana Anda melakukannya.
TDM

0

Saya memecahkan masalah dengan memeriksa gantungan kunci lokal saya. Tetap login.keychain memiliki sertifikat yang tepat


Selamat Datang di Stack Overflow! Ini tidak memberikan jawaban untuk pertanyaan itu. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka - Anda selalu dapat mengomentari posting Anda sendiri, dan begitu Anda mendapatkan reputasi yang cukup, Anda akan dapat mengomentari posting apa pun. Jika Anda memiliki pertanyaan terkait tetapi berbeda, tanyakan pertanyaan baru dengan merujuk pertanyaan ini jika itu akan membantu memberikan konteks.
ddb

0

Anda perlu mengatur sertifikat (hanya sertifikat & tidak menyediakan profil) untuk setiap dan setiap kerangka kerja dinamis yang Anda tautkan (langsung atau tidak langsung) dalam proyek Andamasukkan deskripsi gambar di sini


0

Dalam kasus saya, setelah saya menghapus semua sertifikasi yang dibuat oleh Xcode dan diunduh. Biarkan xcode 8.1 mengelola sertifikasi aplikasi, Ini berfungsi dengan baik !!! Semoga ini bisa membantu seseorang.


0

Saya mengalami masalah ini HANYA di simulator. Tampaknya terkait dengan beberapa Kepemilikan yang tidak valid dalam aplikasi kami, tetapi masalah tidak muncul ketika kami menjalankan perangkat.


0

Saya memecahkan menggunakan trik ini.

Langkah 1:

Buka pengaturan pembuatan proyek dan tambahkan @ executable_path / Frameworks ke opsi Jalur Pencarian Runpath

Langkah 2:

Pergi ke pengaturan build target dan tambahkan @ executable_path / Frameworks ke opsi Runpath Search Paths dan Framework Search Paths.

masukkan deskripsi gambar di sini

Langkah 3:

Mengunduh kembali WWDR (Otoritas Sertifikasi Hubungan Pengembang Apple Seluruh Dunia), diatur ke opsi Gunakan Default Sistem.

Langkah 4:

Hapus Semua Data yang diturunkan menggunakan Terminal

rm -rf ~ / Library / Developer / Xcode / DerivedData / *

Langkah 5 :

Hapus Semua Sertifikat dan pasang kembali ke Keychain. Saya mengaktifkan opsi Use System Default.

Langkah 6:

Mulai ulang Xcode.


0

menghadapi masalah yang sama

  1. sertifikat pengembang saya telah kedaluwarsa sehingga dibuat sertifikat pengembang baru dan unduh
  2. bersihkan dan mulai ulang xcode ini berfungsi untuk saya

0

Saya mengalami masalah ini dengan XCode 9. Tidak ada yang di atas berhasil. Ini melakukan trik untuk saya:

Project > Build Settings > Swift Compiler - Search Path: Setting "Import Paths"ke $(PROJECT_DIR)(rekursif)


0

Ini menyelesaikan kesalahan saya-

Mengunduh kembali WWDR (Otoritas Sertifikasi Hubungan Pengembang Apple Seluruh Dunia), diatur ke opsi Gunakan Default Sistem.


0

Dalam kasus saya, itu adalah masalah dengan salah satu pod yang saya gunakan. Saya akhirnya menghapus pod itu dan menempatkan kode ke dalam proyek saya secara manual.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.