Jawaban:
Saya baru saja membuat sesuatu hari ini dengan menentukan target penerapan iOS 4.0. Dengan hanya armv7 yang ditentukan dalam Arsitektur, Xcode memperingatkan saya bahwa untuk mendukung apa pun di bawah iOS4.2 saya harus menyertakan armv6 dalam Arsitektur. Cukup edit bidang itu, klik tombol "+" saat dialog muncul dan masukkan "armv6" literal.
Dalam kasus saya, kami ingin aplikasi kami berfungsi di bawah iOS4 dan iOS5. Kami harus membuat beberapa modifikasi sehingga akan berfungsi dengan benar di bawah iOS5, tetapi semua perubahan itu dilakukan dengan perubahan kode yang ramah iOS4.
Kami juga menambahkan beberapa kemampuan khusus iOS5 dengan cara yang memungkinkan aplikasi berjalan tanpa mogok di iOS4. Secara khusus, kami menguji kemampuan iOS5 sebelum mencoba menggunakannya, dan menautkan pustaka khusus iOS5 sebagai Opsional.
Jadi, mendukung iPhone3G di dunia iOS5 bisa dengan mudah berarti "kami ingin aplikasi kami berjalan di iOS4 dan di atasnya (terlepas dari penggunaan fitur iOS5)" daripada "kami ingin memastikan aplikasi kami berjalan di perangkat lama yang menjalankan iOS5 ". Ada perbedaan di sini; Pikirkan tentang itu. :-)
Bagaimanapun, menambahkan kembali dukungan armv6 sangat mudah. Dan saya kira intinya adalah ini: Pada titik tertentu, ketika tidak ada lagi perangkat armv6 di luar sana yang perlu dikhawatirkan (untuk alasan apa pun) Anda tidak perlu membuatnya untuk itu. Pandangan Apple adalah setiap orang harus meningkatkan ke perangkat keras terbaru secepat mungkin. Jadi di dunia itu, tidak perlu alat untuk default ke apa pun kecuali yang terbaru dan terhebat juga. :-) Untungnya (atau tidak), kami para pengembang hidup di dunia nyata dan menyadari bahwa Anda harus mendukung hal-hal lama untuk sementara waktu. Dan saya kira tim pengembang Xcode juga mengetahui hal ini, itulah sebabnya Anda dapat menambahkan kembali dukungan armv6 dengan cukup sederhana.
Jawaban sederhananya adalah Anda harus mengubah pengaturan saat ini dari "Standar (armv7) - $ (ARCHS_STANDARD_32_BIT)" menjadi "armv6" dan "armv7". Lihat gambar di bawah. Anda harus menghapus baris dengan pengaturan sebelumnya agar berfungsi.
juga pastikan Anda menetapkan ini di Proyek DAN Target ... saya butuh waktu satu jam untuk mengetahuinya. telah mengaturnya untuk satu tapi tidak untuk yang lain. semoga ini membantu. GLTA
Saya pikir ada alasan mengapa Apple menjatuhkan armv6 dari pengaturan standar.
Saya telah mengkompilasi armv7 / armv6 dengan iOS5 SDK, namun, compiler armv6 menghasilkan kode yang salah dalam mode rilis. Setelah berjam-jam menemukan solusi (mencoba llvm atau gcc dengan tingkat pengoptimalan yang berbeda) saya menyerah.
Jadi, saya akan kembali ke iOS SDK 4.x selama saya mendukung perangkat armv6 yang lebih lama.
Contoh kode:
// myView center=(160, 100)
CGPoint p=myView.center;
// now p=(100,100) (what the heck?)
p.x=myView.center.x;
p.y=myView.center.y;
// now p=(160,100)
p.y+=100;
// now p =(200,200) (what the heck?)
Mungkin saya mengalami kerusakan memori, namun, pada kompiler armv7 dan pada iOSSDK <5.0 itu berperilaku seperti yang diharapkan.
salam Hormat
Belum yakin apakah ini sebenarnya adalah solusi, tetapi saya telah menemukan bahwa mengganti string yang ditentukan dalam "arsitektur", yaitu $ (ARCHS_STANDARD_32_BIT), dengan "armv6 armv7" memungkinkan saya untuk mengompilasi dengan iOS5 sebagai basis dan iOS4 sebagai penerapan target, dan lulus validasi.
Saya tidak menggunakan pustaka atau panggilan eksklusif IOS5, tetapi bermaksud untuk itu di rilis berikutnya.