Sudah lama sejak saya harus menyesuaikan pengaturan membangun proyek. Setelah memutakhirkan ke SDK baru-baru ini saya mengalami masalah dalam membangun konfigurasi distribusi ad hoc saya.
Build menghasilkan peringatan dan kesalahan ini:
peringatan: Aplikasi iPhone harus menyertakan arsitektur armv6 (ARCHS saat ini = "armv7")
iPhone / iPod Touch: aplikasi yang dapat dijalankan tidak memiliki arsitektur yang diperlukan. Setidaknya satu dari arsitektur berikut harus ada: armv6 (-19033)
Namun dalam proyek saya, saya pikir saya sudah mengatur semuanya dengan benar:
- Arsitektur adalah: Standar (armv6 armv7)
- Base SDK: iOS terbaru (saat ini diatur ke iOS 4.2)
- Arsitektur yang valid: armv6 armv7
Saya telah membersihkan semua target.
Saya menghargai tips apa pun.
Jawaban:
Jika menggunakan Xcode 4.2 atau lebih tinggi, coba yang berikut ini:
Klik nama Proyek Anda (di kolom kiri), diikuti oleh Target:
Klik tab 'Bangun Pengaturan' (di kolom kanan):
Klik baris 'Rilis' atau 'Distribusi' di bawah 'Arsitektur', dan pilih 'Lainnya ...':
Klik dua kali baris yang disorot bernama '$ (ARCHS_STANDARD_32_BIT)' di jendela sembulan yang muncul, dan ganti dengan mengetikkan 'armv6'. Kemudian tambahkan baris baru dengan tombol plus di kiri bawah popover, dan ketik 'armv7', lalu klik Selesai:
Pembaruan: Anda harus menambahkan armv7 untuk menargetkan iPhone 5 juga. (Dan jatuhkan armv6 jika membangun dengan Xcode 4.5 atau lebih tinggi, yang tidak lagi mendukung armv6.)
Itu dia. Anda sekarang seharusnya dapat membangun / mengarsipkan tanpa menghasilkan kesalahan.
Jika masih tidak berfungsi, lihat jawaban ini dari justinxreese , yang menyarankan menambahkan entri untuk armv6 dan armv7 di bawah "Kemampuan Perangkat yang Diperlukan" di file info.plist Anda.
sumber
Jika Anda menghapus centang "Bangun Arsitektur Aktif Saja", maka itu akan membangun semua arsitektur yang valid.
Pembaruan : Ini tidak lagi berlaku pada Xcode 4 - ikuti instruksi Nick untuk Xcode 4 dan yang lebih baru.
sumber
Saya memiliki masalah ini bahkan setelah mengikuti jawaban yang diterima dan menemukan yang berikut ini berfungsi:
Di Info.plist Anda, tambahkan entri untuk Kemampuan Perangkat yang Diperlukan. Ini harus berupa array dan akan memiliki dua entri.
Ini akan terlihat seperti ini:
sumber
Selain jawaban Nick tentang Xcode 4.2, Anda mungkin juga perlu meninjau file info.plist Anda. Sepertinya proyek baru dimulai di Xcode 4.2 secara default tentukan 'armv7' di 'Kemampuan Perangkat yang Dibutuhkan'. Anda harus menghapus ini jika ingin mendukung perangkat yang menjalankan armv6 (mis. IPhone 3G).
Hapus armv7 dari 'Kemampuan perangkat yang diperlukan' di YourProjectName-Info.plist Anda
sumber
Pembaruan ios 6
Perubahan dalam Xcode 4.5.x untuk ios 6
sumber
Saya punya masalah ini juga. Saya hanya menetapkan target penempatan saya ke 4.3 dan hanya meninggalkan arsitektur armv7 dan berhasil. Pada titik hampir semua orang memiliki 5, jadi 4.3 baik-baik saja.
sumber
bagi saya itu tidak bekerja dengan setiap jawaban. tapi saya mencoba TARGET> Arsitektur> Debug dan menambahkan baris baru dengan tombol plus, dan ketik 'armv6' (tanpa '), lalu klik Selesai.
dan akhirnya CMD + B dan kemudian klik kanan di PrjectName.app (dalam folder Products)> Buka di Finder> Compress "PROJECT_NAME.APP" (di Debug-iphoneos)> Unggah ke AppStore
itu pengaturan layar saya.
jika Anda sudah menyertakan proyek, harap konfigurasikan semuanya. Semoga bantuan Anda.
sumber
Setelah mencoba campuran dari jawaban-jawaban ini, saya akhirnya menemukan berhasil. Saya sangat kesal pada Apple sekarang. Hanya satu jam mereka membuatku sia-sia. Ini konfigurasi saya.
sumber
Saya mencoba semua jawaban di atas, tidak ada yang menjawab pertanyaan saya. Jadi saya membuat proyek baru dan mengubah pengaturan pembangunan satu per satu. Hanya "File Izin Alternatif" yang berbeda. Pembangunan proyek gagal memiliki nilai armv7. Hapus lalu bersih-> build-> arsip. Berhasil! Semoga bisa menyelesaikan pertanyaan Anda
sumber
Wow, saya memperbarui / mengirimkan aplikasi setiap 6 bulan. Setiap kali saya melakukan ini, saya harus belajar cara "baru" untuk melakukannya ...
Masalah yang sama seperti yang dijelaskan di atas ketika menjalankan iOS 5.1, dan Xcode 4.3.2
Terima kasih untuk postingnya! Saya menghabiskan beberapa saat memperbarui semua pengaturan proyek ke armv6, armv7, tetapi tidak ada sukacita. Ketika saya mengatur "membangun arsitektur aktif saja" ke Tidak, saya mendapat galat build tentang menempatkan kedua objek di direktori yang sama.
Untungnya, saya perhatikan kalian memodifikasi pengaturan target build sebagai gantinya. Inilah yang akhirnya berhasil (armv6, armv7, dan pengaturan "hanya membangun arsitektur aktif" ke Tidak di bawah Pengaturan build target). Sebagai penafian, saya telah mengatur semua arsitektur ke armv6, armv7 dalam pengaturan proyek juga.
Bagaimanapun, terima kasih atas bantuannya, Brent
sumber
Saya harus memastikan untuk mengubah pengaturan ini di kedua pengaturan Target dan Proyek di xCode 4.3.2 setelah melakukan itu dan pengaturan untuk membangun untuk armv6 dan armv7 di mana pun saya bisa mengirimkan aplikasi saya.
Untuk ukuran yang aman, saya juga keluar xCode antara membuat perubahan dan melakukan siklus bersih, membangun, arsip.
sumber
Masalah yang cukup menyakitkan bagi saya juga. Hanya menghabiskan sekitar satu jam mencoba membangun dan membangun kembali - tidak ada sukacita. Pada akhirnya saya harus melakukan ini:
Saya kira itu adalah kumpulan jargon tentang arm6, arm7 karena kelihatannya proyek saya valid untuk keduanya, setidaknya pengaturan sepertinya mengatakan demikian), dugaan saya adalah ini adalah cara sinis untuk memperdaya kami dengan teknis, yang kami tidak mengerti, jadi kami hanya mengambil opsi yang mudah dan menargetkan iOS terbaru (bagus untuk Apple dengan lebih banyak orang yang terkini) ....
sumber
Berikut ini dokumentasi Apple:
T&J Teknis QA1760
Dikatakan ada dua hal yang harus Anda lakukan dengan benar:
armv6
ke pengaturan build ArsitekturNo
.Jika ini masih tidak membantu Anda, periksa kembali apakah Anda benar-benar mengubah pengaturan arsitektur bangunan untuk konfigurasi pembangunan yang benar - saya menghabiskan setengah jam mengutak-atik yang salah dan bertanya-tanya mengapa itu tidak berhasil ...
Pilih
Edit Scheme...
di menu Produk, klik skema "Arsip" di daftar sebelah kiri dan periksa Konfigurasi Bangun. Ubah nilainya jika bukan itu yang Anda harapkan.sumber
Catatan; Saya harus melakukan langkah-langkah ini untuk proyek basis saya, dan file .xcodeproj PhoneGap yang tertanam dalam aplikasi saya.
Ya, saya menyematkan PhoneGap; mereka sering memperbarui jauh, dan saya punya waktu kurang dari dua bulan untuk mengetahui bahwa suatu fitur disusutkan.
sumber
Coba ubah target penempatan Anda menjadi sesuatu yang lebih tinggi dari prosesor armv6. Pengaturan untuk xCode merujuk pada tingkat sistem operasi, misalnya: Versi iOS # {3.1, 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 5.1}
(i) Anda dapat mengatur ini di tab pengaturan build atau tab ringkasan. Mulai di kiri atas jendela di Project Navigator, dengan semua file yang terdaftar di dalamnya. Klik yang paling atas yang memiliki ikon biru.
(ii) Jika Anda berencana menggunakan sirkuit garis shader yang dapat diprogram, yang diakses dan dikendalikan melalui openGL ES 2.0 API, maka Anda harus mengatur "Versi Penerapan" Anda menjadi sekitar 4,3, yang saya yakin hanya tersedia pada perangkat seperti 3GS atau lebih baru. xCode melaporkan bahwa iOS 4.2.5 atau lebih tinggi diperlukan untuk menjalankan kode armv7. Dan sekali lagi, prosesor ini, saya percaya, dimulai dengan 3GS. * IOS 4.3 tampaknya menjadi pilihan bagi saya, untuk saat ini.
http://theiphonewiki.com/wiki/index.php?title=Armv7
http://en.wikipedia.org/wiki/List_of_iOS_devices
sumber
Jika xCode terus mengeluh tentang armv7, pastikan Anda memutuskan perangkat apa pun yang terhubung (terutama iPhone 5 !!) dan coba lagi. Butuh waktu berjam-jam untuk mengetahui informasi kecil itu.
sumber
Menggunakan Xcode 4.2 pada Snow Leopard, saya menggunakan pengaturan berikut untuk membangun aplikasi yang bekerja pada kedua armv6 (Iphone 3G dan lebih rendah) DAN armv7 (semuanya lebih baru dari 3G termasuk 3GS).
jangan letakkan armv7 dalam kemampuan perangkat yang diperlukan jika Anda ingin aplikasi berjalan pada 3G dan lebih rendah juga.
sumber