Saya memutakhirkan versi Xcode dan ketika menggunakan perpustakaan statis eksternal, saya mendapatkan pesan ini:
ld: file bersifat universal (3 slice) tetapi tidak mengandung slice (n) armv7s: / file / lokasi untuk arsitektur armv7s dentang: error: perintah linker gagal dengan kode keluar 1 (gunakan -v untuk melihat doa)
Apakah ada cara untuk mem-bypass ini dan menambahkan dukungan ke perpustakaan jika pengembang perpustakaan belum memperbarui perpustakaan mereka?
ios
objective-c
xcode
ios6
static-libraries
Dafna Elazazer
sumber
sumber
Jawaban:
Jika Anda ingin menghapus dukungan untuk arsitektur apa pun, misalnya, ARMv7-s dalam kasus Anda, gunakan menu Project -> Build Settings -> hapus arsitektur dari "arsitektur yang valid".
Anda dapat menggunakan ini sebagai solusi sementara sampai perpustakaan telah diperbarui. Anda harus menghapus arsitektur dari proyek utama Anda, bukan dari perpustakaan.
Atau, Anda dapat mengatur tanda untuk konfigurasi debug Anda "Build Active Architecture Only" ke Ya. Biarkan konfigurasi rilis "Build Active Architecture Only" ke Tidak, hanya saja Anda akan mendapatkan pengingat sebelum merilis bahwa Anda harus memutakhirkan pustaka pihak ketiga yang Anda gunakan.
sumber
No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv7).
dari tautan yang hanya bisa saya pecahkan dengan menambahkani386
ke daftar Arsitektur yang Valid.Saya hanya beralih "Hanya Membangun Arsitektur Aktif" menjadi "Ya" di pengaturan membangun target, dan tidak apa-apa sekarang!
sumber
Cobalah untuk menghapus armv7s dari "arsitektur Valid" proyek untuk melepaskan dari masalah ini untuk ponsel iOS 5.1
sumber
Saya baru saja memposting perbaikan di sini yang juga berlaku dalam kasus ini - pada dasarnya, Anda melakukan hex menemukan-dan-mengganti di perpustakaan eksternal Anda untuk membuatnya berpikir bahwa itu adalah kode ARMv7s. Anda harus dapat menggunakannya
lipo
untuk memecahnya menjadi 3 perpustakaan statis, menduplikasi / memodifikasi satu ARMv7, kemudian gunakanlipo
lagi untuk merakit perpustakaan baru untuk semua 4 arsitektur.sumber
Dukungan Buram untuk iPhone 5 (ARMv7s) Seperti yang saya sebutkan di posting kemarin, Flurry mulai mengerjakan versi iOS SDK untuk mendukung prosesor ARMv7 di iPhone 5 baru segera setelah pengumuman pada hari Rabu.
Saya senang memberi tahu Anda bahwa pekerjaan telah selesai dan SDK sekarang tersedia di situs.
sumber
gunakan menu Project -> Build Settings ->
kemudian hapus armv7s dari "arsitektur yang valid". Jika standar telah dipilih maka hapus itu dan kemudian tambahkan armv7.
sumber
Dalam hal ini terjadi pada seseorang. Saya membangun perpustakaan saya sendiri untuk digunakan dengan kode pihak ketiga. Ketika saya sedang membangunnya untuk dikirim, saya secara tidak sengaja meninggalkan iPhone 4S saya terhubung, dan Xcode membangun perpustakaan saya hanya untuk arsitektur yang terpasang daripada mengikuti pengaturan proyek. Hapus semua perangkat yang terhubung dan bangun kembali perpustakaan, tautkan, dan Anda akan baik-baik saja.
Semoga ini bisa membantu.
sumber
Dalam kasus saya, saya menautkan ke perpustakaan pihak ketiga yang agak lama (dikembangkan untuk iOS 6, di XCode 5 / iOS 7). Oleh karena itu, saya harus memperbarui perpustakaan pihak ketiga, melakukan Clean and Build, dan sekarang berhasil dibangun.
sumber