Saya mendapatkan kesalahan ini saat membangun aplikasi iPhone saya:
ld: peringatan: di /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Library /Frameworks/UIKit.framework/UIKit, i386 arsitektur yang diperlukan tidak ada dalam file
Ini berlaku sama untuk semua kerangka kerja di aplikasi saya. Sangat aneh karena ini tidak terjadi sebelumnya.
iphone
cocoa-touch
Gabe Shahbazian
sumber
sumber
Jawaban:
Ini terjadi ketika Anda menambahkan kerangka kerja ke proyek Anda dan secara tidak sengaja menyalin kerangka kerja ke direktori proyek Anda.
Cara mengatasinya adalah memeriksa direktori proyek Anda (tempat Anda menyimpan proyek pada disk) untuk file iphone SDK * .Framework dan menghapusnya.
Proyek akan terbangun dengan baik setelahnya.
sumber
Saya memiliki masalah yang sama, dan solusinya ternyata adalah perbaikan yang mudah. Buat cadangan kemudian buka project.pbxproj (terletak di dalam bundel file proyek Anda) di TextMate atau TextEdit dan cari bagian berjudul "/ * Begin XCBuildConfiguration section * /". Cari kunci bernama FRAMEWORK_SEARCH_PATHS dan hapus dan isinya (sekali per konfigurasi build, jadi saya menghapusnya di dua tempat). Ini contoh yang saya hapus:
Proyek saya sekarang dibuat untuk perangkat iPhone dan iPhoneSimulator.
sumber
Apa yang terjadi di sini adalah bahwa Xcode secara misterius menambahkan entri "Framework Search Paths" yang mengarah ke SDK perangkat iPhone tertentu. Misalnya, milik saya baru-baru ini disetel ke:
Ini mengarahkan kompiler untuk menemukan kerangka kerja dari arsitektur yang salah. Menghapus nilai apa pun di bawah kunci "Framework Search Paths" di setelan build target Anda akan menyelesaikan masalah.
sumber
Saya hanya ingin menyebutkan bahwa di XCode jika Anda pergi ke "Edit Pengaturan Proyek" dan menemukan "Jalur Pencarian" Ada bidang untuk "Jalur Pencarian Kerangka Kerja". Memperbarui ini seharusnya memperbaiki masalah, tanpa harus meretas file proyek!
Bersulang!
Jesse
sumber
Pastikan Anda tidak menyalin kerangka kerja ke dalam proyek Anda saat Anda menambahkannya. Jika Anda menyalinnya, itu tidak dapat menemukan jalur asli. Untuk memperbaiki masalah ini. Hapus kerangka kerja AVFoundation dari folder kerangka kerja Anda di proyek Anda, lalu tambahkan lagi, tapi kali ini, pastikan Anda tidak memiliki tanda centang salinan.
Ini memperbaikinya untuk saya!
sumber
sumber
Jika aplikasi Anda dimaksudkan untuk berjalan di perangkat, pastikan Anda tidak mencoba menjalankannya di simulator. Mungkin terdengar jelas, tapi tetap periksa.
sumber
Meskipun ada kemungkinan ada sesuatu yang terhapus, menurut pengalaman saya ada sesuatu yang kacau dalam file proyek. Saya belum menjelaskan apa itu "sesuatu". Saya mengalami masalah serupa saat penginstalan SDK baik-baik saja. Ada beberapa opsi.
Pertama, tambahkan semua file Anda ke proyek baru. Ini sepertinya biasanya berhasil. Agak menyebalkan.
Kedua, Anda dapat mengklik kanan proyek di XCode / Get Info / Build / Library Search Paths. Tambahkan jalur baru yang mirip dengan /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk/usr/lib. Tambahkan versi yang sesuai dari string itu untuk setiap versi (2.2.1, dll) dan platform (simulator atau iPhoneOS). Lakukan tindakan serupa untuk Framework Search Paths jika framework adalah masalah Anda.
Ketiga, yang lebih berhasil tetapi lebih dapat diandalkan, adalah membuka project.pbxproj dari dalam MyProject.xcodeproj (Textmate bagus untuk ini). Cari "/ * Mulai bagian XCBuildConfiguration * /", lalu "LIBRARY_SEARCH_PATHS" dan "FRAMEWORK_SEARCH_PATHS". Tambahkan atau ubah jalur yang sesuai, dan simpan file.
Bagaimanapun, sakit di pantat, dan saya yakin ingin menunjukkan penyebabnya karena saya sudah mengalami ini beberapa kali. Proyek dibangun dengan baik, kemudian baru selesai dan menolak untuk melakukannya dengan alasan yang tampaknya kecil.
sumber
"Edit Pengaturan Proyek" dan temukan "Jalur Pencarian" Ada bidang untuk "Jalur Pencarian Kerangka Kerja". Hapus semua!!
sumber
Itu terjadi di sini pada saya juga. Terima kasih kepada mitra yang hebat, kami menemukan jawabannya. Xcode Anda mungkin mengarah ke simulator .. ubah ke perangkat IOS sebagai gantinya ..dibangun dengan mulus setelah ....
sumber
Jalankan perintah file pada kerangka kerja dari Terminal:
Anda harus mendapatkan kembali pesan yang memberi tahu Anda arsitektur mana yang kompatibel dengan biner UIKit. Jika Anda tidak melihat "i386" terdaftar, maka Anda entah bagaimana berhasil menghapus versi i386 dari UIKit, yang berarti Anda tidak dapat membuat simulator. Untuk memperbaikinya, Anda harus menginstal ulang SDK.
Jika Anda mendapatkan kesalahan lain, semoga ini akan membantu Anda mengetahui apa masalah sebenarnya.
sumber
Saya hanya ingin memberi tahu Anda bahwa Dalam kasus saya, saya mengalami masalah yang sama, saya menyadari bahwa saya memiliki folder Xcode yang lebih lama bernama Xcode3.1.3 Saya hanya mengganti namanya karena itu adalah versi yang lebih lama dan itu melakukan keajaiban untuk saya.
sumber
Periksa jalur pencarian perpustakaan Anda di pengaturan target Anda. Terkadang pustaka konyol masuk ke sana dan ini akan memberi Anda kesalahan serupa.
Anda dapat menghapus semua entri di bagian ini.
sumber
Saya baru saja mengalami sesuatu yang sedikit berbeda, karena saya bekerja di perpustakaan saya sendiri (WM_GSRecognizerLib), tetapi kesalahannya sama.
Apa yang akan terjadi: karena beberapa pembaruan, jalur yang menargetkan lib untuk menyertakan (.a) berasal dari folder "Debug-iphoneos" (tempat dibuat). Kompilasi untuk Perangkat iOS Generik berfungsi dengan baik, tetapi tidak untuk simulator, mengeluh karena arsitektur i386 hilang.
Apa yang saya lakukan untuk masalah ini, adalah juga menyertakan binari dari folder "Debug-iphonesimulator".
Ini dapat membantu untuk topik ini, karena penjelasannya ada di sini: perangkat memerlukan biner untuk arm64 / armv7 / armv7s, sedangkan simulator memang membutuhkan i386.
sumber
Solusi saya adalah menyetel simulator target debug YES, lihat saja status git untuk melihat baris baru ditambahkan sebagai arsitektur hanya pada .project. jika Anda tidak menyetelnya, build akan dijalankan ke semua arsitektur dan akan menampilkan beberapa arsitektur yang hilang seperti i386 atau lainnya. CATATAN BAHWA jelas masalah utama adalah menggunakan beberapa kerangka kerja yang mengimplementasikan beberapa jenis arsitektur tertentu.
sumber
Saya juga mendapat kesalahan yang sama saya menggunakan xcode versi 4.0.2 jadi yang saya lakukan adalah memilih file proyek xcode dan dari mereka saya memilih opsi Target mereka saya bisa melihat aplikasi proyek saya jadi saya mengkliknya dan pergi ke build opsi pengaturan.
Mereka di opsi pencarian saya mengetik jalur pencarian Kerangka , dan menghapus semua pengaturan dan kemudian mengklik tombol build dan itu berfungsi untuk saya dengan baik,
Terima kasih dan Salam
sumber