Saya baru saja mengunduh Xcode 4.2 dengan paket iOS 5 SDK dan saya segera menyadari bahwa saya tidak dapat menggunakan iPhone 3Gs dengan iOS 4.2.1 untuk debugging. Saya hanya dapat men-debug dan menguji di iphone 4 saya dengan iOS 5 diinstal.
Untuk setiap perangkat saya yang menjalankan iOS kurang dari 5.0 Xcode hanya mengatakan "Selesai berjalan untuk iPhone3GS" dan tidak menjalankannya. Saya telah menetapkan target penerapan saya ke 3.0 karena saya tidak menggunakan fitur apa pun di aplikasi saya di atas 3.0 dan saya ingin dapat menargetkan semua versi 3.0 atau lebih tinggi. Saya telah memasang semua profil penyediaan saya dan yang terbaru.
Saya telah keluar dan memulai ulang xcode, saya telah membersihkan build beberapa kali. Saya telah mencoba menambahkan armv6 dalam pengaturan build archtecture, tetapi tidak ada yang memungkinkan saya untuk membangun dan menjalankan aplikasi saya di ponsel lama saya dengan ios 4.2.1.
Pertanyaan saya adalah, apakah mungkin tetap membuat aplikasi dengan SDK baru berfungsi untuk iOS versi lebih rendah dari 5? Bagaimana saya bisa yakin bahwa aplikasi saya akan tetap berjalan di versi iOS yang lebih rendah jika saya tidak dapat menginstalnya di ponsel lama saya?
Edit: Oke, sepertinya iOS SDK 5 menjatuhkan dukungan untuk armv6 secara default. Yang harus Anda lakukan adalah menambahkan armv6 di bidang Arsitektur di bawah Pengaturan Bangun untuk Target dan Proyek Anda. Kemudian aplikasi Anda akan dapat berjalan di perangkat iPhone 3G. Jawabannya dapat ditemukan di sini Cara membangun untuk arsitektur armv6 dan armv7 dengan iOS 5
iOS
versi. Selain itu, tambahkan hasil edit sebagai jawaban sehingga Anda dapat menerima solusi yang Anda temukan dan pertanyaan ini dapat ditandai sebagai terjawab.Jawaban:
Saya mengalami masalah yang sama saat mencoba menjalankan proyek Xcode 4.2 yang baru dibuat di iPhone 3G 4.2.1. Inilah cara saya bisa menjalankannya.
1) Ubah "Pengaturan Bangun" ==> "Arsitektur" Target dari "Standar (armv7)" menjadi "lainnya". Tambahkan armv6 dan armv7.
2) Ubah "Build Settings" ==> "Valid Architecture" Target menjadi armv6 dan armv7.
3) Ubah "Build Settings" ==> "iOS Deployment Target" ke iOS 4.2.
4) Buka proyek * -Info.plist, hapus pengaturan "Kemampuan perangkat yang diperlukan" (perhatikan itu diperlukan armv7)
btw saya menemukan ini ketika saya mencoba menambahkan aplikasi secara manual melalui penyelenggara dan itu melaporkan:
Semua harus bekerja setelah itu. Bicara tentang PITA.
sumber
Buka Xcode> Preferensi> Unduh dan instal dukungan debugging untuk versi iOS yang lebih lama.
sumber
mmorris membuat saya hampir menyelesaikan masalah ... Di Info.plist, saya harus mengatur Kemampuan Perangkat yang Diperlukan ke armv6, bukan armv7 Semoga ini bisa membantu orang lain juga.
sumber
Anda perlu menghubungkan telepon dan kemudian pergi ke penyelenggara. Xcode akan secara otomatis meminta versi yang lebih lama.
Lihat halaman pengembang untuk info lebih lanjut. Itu dijelaskan dalam catatan untuk 4.2 beta
sumber
Saya mengalami masalah serupa saat mencoba menjalankan aplikasi saya di iPod Touch lama. Saya meningkatkan ke Xcode 4.3.3 dan aplikasi tidak lagi berjalan di debugger untuk saya pada perangkat keras yang lebih lama.
Saya yakin komentar lain di sini tentang "Arsitektur" dan "Kemampuan perangkat yang diperlukan" adalah detail penting untuk ditentukan dengan benar. Sayangnya, mereka tidak cukup untuk memperbaiki masalah saya.
Dalam kasus saya, saya menemukan skema build menjadi pelakunya. Xcode 4.3.3 mendorong saya untuk beralih dari debugger GDB ke LLDB ketika meningkatkan proyek saya. Ketika saya mengubah tindakan Jalankan skema saya kembali ke GDB , saya dapat menjalankan aplikasi lagi di perangkat keras lama saya dari Xcode.
sumber
Saya menemukan bahwa saya harus menambahkan armv6 ke arsitektur, tetapi tetap tidak berhasil. Dan sekarang saya telah menghapus armv7 dari kemampuan yang dibutuhkan, dan hanya itu! Berhasil!
sumber
Ini berfungsi untuk saya dan seharusnya berfungsi untuk Anda jika Anda memiliki versi Xcode yang lebih lama sebelumnya. Jika tidak, Anda harus mengikuti saran yang diberikan oleh orang lain untuk mendapatkan SDK dari versi SDK yang lebih lama:
sudo cp -a /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk
Perintah ini hanya sedikit berbeda dari yang ditunjukkan oleh orang lain, tetapi perintah tersebut menjatuhkan file di folder SDK itu sendiri untuk saya - kami ingin subdirektori dibuat dengan nama yang sesuai.
sumber
Dalam kasus saya, ada garis yang berlebihan dalam kapabilitas perangkat yang diperlukan
Saya baru saja menghapusnya ...
Semoga bisa membantu orang lain.
sumber