Apakah mungkin untuk menargetkan versi iOS yang lebih lama saat menggunakan Xcode 4.2 dan iOS 5 SDK?

103

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

Greg Ellis
sumber
Perhatikan bahwa pengeditan Anda berkaitan dengan arsitektur, yang merupakan masalah terpisah untuk iOSversi. Selain itu, tambahkan hasil edit sebagai jawaban sehingga Anda dapat menerima solusi yang Anda temukan dan pertanyaan ini dapat ditandai sebagai terjawab.

Jawaban:

153

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.

masukkan deskripsi gambar di sini

4) Buka proyek * -Info.plist, hapus pengaturan "Kemampuan perangkat yang diperlukan" (perhatikan itu diperlukan armv7) masukkan deskripsi gambar di sini

btw saya menemukan ini ketika saya mencoba menambahkan aplikasi secara manual melalui penyelenggara dan itu melaporkan:

Tidak dapat memasang aplikasi

Info.plist untuk aplikasi di /Users/.../TestsDebug.app menentukan persyaratan kemampuan perangkat, yang tidak dipenuhi oleh Dev iPhone 3G

Semua harus bekerja setelah itu. Bicara tentang PITA.

mmorris.dll
sumber
Terima kasih banyak! Aku berhutang budi padamu! Ini benar-benar memecahkan masalah saya, PITA memang: D
Greg Ellis
4
Terima kasih! Saya telah membaca tentang pengaturan arsitektur di tempat lain, tetapi tampaknya tidak ada orang lain yang menyebutkan pengaturan "Kemampuan perangkat yang diperlukan" juga.
bunnyhero
Saya harus menambahkan: proyek baru dan lama terpengaruh peningkatan! Saya menguji barang lama saya sebelum googling, dan mereka juga tidak berhasil! Aku juga berhutang budi padamu! :)
Eduardo Costa
1
Saya memiliki masalah yang sama, tetapi meskipun pengaturan proyek adalah 'Standard armv7' untuk Arsitektur, Arsitektur yang Valid sudah menunjukkan 'armv6 armv7'. Selain itu, saya tidak memiliki properti 'Kemampuan perangkat yang diperlukan' di Info.plist. Akan mencoba trik ini, semoga berhasil!
rchampourlier
"Kemampuan perangkat yang diperlukan" membuat saya juga
codecaffeine
12

Buka Xcode> Preferensi> Unduh dan instal dukungan debugging untuk versi iOS yang lebih lama.

Aleksejs Mjaliks
sumber
Saya pergi ke preferensi dan mengunduh dan menginstal dukungan debugging untuk OS yang lebih lama, keluar dari xcode, membuka kembali xcode melakukan pembersihan dan pembuatan, tetapi aplikasi masih tidak dapat diinstal pada perangkat lama saya. Saya benar-benar bingung sekarang, ketika saya melihat tanggapan Anda, saya pikir pasti itu akan memperbaiki masalah saya :(
Greg Ellis
1
Aku juga berhutang budi padamu! Ini memecahkan masalah LAIN yang saya alami setelah peningkatan Xcode 4! Sekarang saya dapat men-debug perangkat iOS 4.2 saya (iPod Touch generasi ke-2)!
Eduardo Costa
3

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.

flizit
sumber
1

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

Foo Bah
sumber
Saya melakukan ini dan mengklik "Gunakan perangkat ini untuk pengembangan" dan tampaknya melakukan apa yang seharusnya dilakukan, tetapi saya masih tidak bisa menjalankan aplikasi di perangkat lama saya dari xcode.
Greg Ellis
1

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.

otto
sumber
1

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!

Greg
sumber
0

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.

Tom Boutell
sumber
0

Dalam kasus saya, ada garis yang berlebihan dalam kapabilitas perangkat yang diperlukan masukkan deskripsi gambar di sini

Saya baru saja menghapusnya ...

masukkan deskripsi gambar di sini

Semoga bisa membantu orang lain.

Arkady
sumber