Xcode 5 memiliki panel preferensi yang memungkinkan seseorang untuk mengunduh simulator iPhone 6.1, namun saya tidak dapat menemukan tempat di mana ia memungkinkan mengunduh iOS 6 SDK, sehingga tidak mungkin untuk mengatur SDK aktif ke iOS 6 ketika mengembangkan dengan Xcode 5 Apakah ada solusi yang memungkinkan Xcode 5 menginstal iOS 6 SDK?
EDIT:
Penanganan masalah tidak lagi diperlukan sekarang karena Xcode 5 umumnya tersedia dan memungkinkan Anda untuk mengunduh versi SDK sebelumnya.
Jawaban:
EDIT: Mulai 1 Februari 2014, Apple tidak akan lagi menerima aplikasi pra-iOS7 untuk diajukan ke App Store. Jadi sementara teknik ini masih berfungsi, itu tidak akan berguna bagi sebagian besar pembaca.
Ya, ini baik-baik saja. Saya masih membangun dengan iOS 4.3 untuk satu proyek (sudah beberapa saat sejak kami memperbarui; tetapi mereka masih menerimanya setelah iOS 6 keluar), dan saya saat ini membangun 10,5 aplikasi dengan Xcode 5.
Lihat Bagaimana mengarahkan Xcode ke SDK lama sehingga dapat digunakan sebagai "Base SDK"? untuk detail tentang cara mengaturnya. Anda dapat menggunakan skrip fix-xcode saya untuk menautkan semuanya untuk Anda setiap kali Anda memutakhirkan.
Satu-satunya trik adalah mendapatkan SDK lama. Jika Anda tidak memilikinya, Anda biasanya perlu mengunduh Xcode versi lama (masih tersedia di developer.apple.com ), buka paket pemasang, dan cari-cari untuk menemukan SDK yang Anda butuhkan.
SDK dapat ditemukan di dalam paket pemasang di:
sumber
Saya juga menjalankan masalah yang sama ketika saya memperbarui ke xcode 5 itu dihapus SDK yang lebih tua. Tapi saya mengambil salinan SDK lama dari komputer lain dan hal yang sama dapat Anda unduh dari tautan berikut.
http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(akun uji www.4shared.com [email protected]/test)
Ada 2 cara untuk bekerja.
1) Unzip dan rekatkan folder ini ke /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs & restart xcode.
Tetapi ini mungkin sekali lagi dihapus oleh Xcode jika Anda memperbarui xcode.
2) Cara lain adalah Unzip dan rekatkan di tempat yang Anda inginkan dan buka /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs dan buat tautan simbolik di sini, sehingga SDK akan tetap sama meskipun Anda memperbarui Xcode.
Perubahan lain yang saya buat, Pengaturan Bangun> Arsitektur> standar (bukan 64) jadi daftarkan semua versi Sasaran Penempatan
Tidak perlu mengunduh zip jika Anda hanya ingin mengubah target penyebaran.
Berikut beberapa tangkapan layar.
sumber
Ya, saya baru saja memecahkan masalah hari ini.
Maka Anda dapat memilih SDK seperti di bawah ini:
Semoga ini bisa membantu Anda.
sumber
Temukan dan unduh SDK lama. SDK lama ditemukan di sini .
Saya telah menyalin direktori xcode.app sebagai Xcode_4.6.3.app.
Sekarang Anda dapat menguji dan men-debug di kedua versi xcode. Anda harus menjalankannya dari folder terkait atau membuat pintasan di desktop Anda. Ketika membangun dari baris perintah berikan parameter sebagai
iPhoneOS6.1
gantiiPhoneOS7.0
Ini bekerja sangat baik untuk saya di Xcode5 dan iOS.
Pergi ke ke dir SDK Xcode5. Biasanya terletak di:
Tambahkan tautan simbolis ke SDK lama seperti ini:
Atau lebih tepatnya dari mana saja di baris perintah,
sumber
Anda dapat mengunduh SDK yang lebih lama dan menginstalnya
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
map. Logout + Login hanya untuk memastikan perubahannya berlaku dan Anda akan melihat SDK lama di XCode baru Anda
sumber
Hanya dengan menambahkan, Anda sebenarnya dapat mengunduh versi lama dari simulator dengan Xcode 5 itu sendiri - cukup buka preferensi dan Anda akan menemukannya di bawah Unduhan:
sumber
Buka jendela terminal
Anda akan diminta untuk memasukkan kata sandi karena Anda berada di dalam folder sistem
sumber
Bagi saya solusi termudah:
Untuk menguji aplikasi di iOS 6 pada simulator Anda: - Cukup pilih iOS 6.0 di sheme aktif Anda.
Untuk membangun aplikasi Anda di iOS 6, sehingga desain aplikasi Anda akan menjadi desain yang lebih lama pada iPhone dengan iOS 7 juga: - Pilih iOS6.1 dalam Target - Base SDK
Perhatikan saja: Saat Anda mengubah SDK dasar di Target Anda, iOS 7.0 tidak akan tersedia lagi untuk dibuat di simulator!
sumber
Dapat melakukan ini , Tapi tidak terlalu diperlukan
Bagaimana cara melakukannya
Jason Lee mendapat jawabannya. Saat menginstal xCode saya lebih suka menyimpan instalasi sebelumnya daripada menggantinya. Jadi saya punya ini di folder instalasi saya
Jadi
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Berisi sdks berbeda. (Ganti Xcode.app dengan nomor yang benar) salin sdks sebelumnya ke/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Ini folder saya setelah saya salin satu.
Sekarang restart xCode dan Anda dapat mengatur versi sdks sebelumnya sebagai SDK dasar.
Kenapa tidak perlu
Merujuk Documentaion Apple
Untuk menggunakan SDK tertentu untuk proyek Xcode, buat dua pilihan dalam pengaturan build proyek Anda.
Pilih target penempatan .
Ini mengidentifikasi versi OS paling awal tempat perangkat lunak Anda dapat berjalan.
Pilih SDK dasar
Perangkat lunak Anda dapat menggunakan fitur yang tersedia dalam versi OS hingga dan termasuk yang sesuai dengan SDK dasar. Secara default, Xcode menetapkan ini ke OS terbaru yang didukung oleh Xcode.
Aturannya adalah Gunakan terbaru sebagai SDK dasar dan tetapkan target penyebaran ke aplikasi versi minimum yang seharusnya dijalankan
Misalnya Anda dapat menggunakan iOS 7 sebagai SDK dasar dan menetapkan iOS 6 sebagai target penempatan. Jalankan di iOS 6 simulator untuk menguji cara kerjanya di iOS 6. Instal simulator jika tidak tersedia dengan daftar simulator.
Tambahan lagi, Anda dapat menggunakan fitur tanpa syarat hingga iOS 6. Dan secara kondisional Anda dapat mendukung fitur baru iOS 7 untuk perangkat yang diperbarui baru sambil mendukung versi sebelumnya.
Hal ini dapat dilakukan dengan menggunakan Kelas Lemah Linked , Lemah Linked Metode , Fungsi , dan Simbol
https://developer.apple.com/library/ios/documentation/developertools/conceptual/cross_development/Using/using.html#//apple_ref/doc/uid/20002000-SW3
Lemah Menghubungkan
Misalkan dalam Xcode Anda menetapkan target penyebaran (versi minimum yang diwajibkan) untuk iOS6 dan SDK target (versi maksimum yang diizinkan) ke iOS7. Selama kompilasi, kompiler akan menautkan lemah antarmuka apa pun yang diperkenalkan di iOS7 sementara sangat menghubungkan antarmuka sebelumnya. Ini akan memungkinkan aplikasi Anda untuk terus berjalan di iOS6 tetapi tetap memanfaatkan fitur yang lebih baru ketika tersedia.
sumber
Jawaban lain di sini juga benar, tetapi saya menemukan langkah-langkah berikut sebagai yang termudah:
Cukup unduh Xcode 4.6.3 dari tautan pusat dev yang bertuliskan "Mencari versi Xcode yang lebih lama?" (saat ini menunjuk ke sini ) dan pasang dmg.
Kemudian di terminal, salin file SDK melalui:
Akhirnya, luncurkan kembali Xcode dan Anda selesai.
sumber
Aplikasi saya dialihkan ke Xcode 5 dengan mulus karena masih dapat dibangun dengan Target Penerapan iOS asli yang Anda tetapkan dalam proyek (5.1 dalam kasus saya). Jika SDK baru tidak menyebabkan masalah yang tidak dapat diatasi, lalu mengapa tidak membangunnya? Tentunya ada banyak perbaikan di bawah kap.
Sebagai contoh, saya akan lebih suka menggunakan Xcode 5 daripada Xcode 4.6.3. Mengapa? Saya akan mendapatkan lebih banyak daya tahan baterai karena scrolling UI dari area teks / kode di Xcode 5 tidak lagi mengunyah seluruh utas CPU.
sumber
Menghubungkan 6.1 SDK ke Xcode 5 seperti dijelaskan dalam jawaban lain adalah satu langkah. Namun ini masih tidak menyelesaikan masalah yang dijalankan pada iOS 7 elemen UI baru diambil, pengendali tampilan dibuat ukuran penuh dll.
Seperti yang dijelaskan dalam jawaban ini, Anda juga diharuskan untuk mengubah UI ke mode lawas di iOS 7:
Hati-hati: Ini adalah kunci tidak berdokumen dan tidak direkomendasikan untuk pembuatan App Store!
Juga, dalam pengalaman saya saat uji coba pada perangkat saya menemukan bahwa itu hanya bekerja kedua kalinya saya meluncurkan aplikasi meskipun saya sedang menjalankan kode cukup awal dalam peluncuran aplikasi, di
+[AppDelegate initialize]
. Juga ada perbedaan halus untuk versi yang dibangun menggunakan Xcode 4.6. Misalnya, bilah navigasi transparan berperilaku berbeda (menyebabkan tampilan menjadi ukuran penuh).Namun, karena Xcode 4.6.3 mogok di Mavericks (setidaknya untuk saya, lihat rdar: // 15318883 ), ini setidaknya merupakan solusi untuk terus menggunakan Xcode 5 untuk debugging.
sumber
Saya mengunduh XCode 4 dan mengambil iOS 6.1 SDK dari itu ke XCode 5 seperti yang dijelaskan dalam jawaban lain. Kemudian saya juga menginstal iOS 6.1 Simulator (itu tersedia dalam preferensi). Saya juga mengganti Base SDK ke iOS 6.1 dalam pengaturan proyek.
Setelah semua manipulasi ini proyek dengan 6.1 basis SDK berjalan dalam mode kemampuan khusus di iOS 7 Simulator.
sumber
Dari 1 Februari Apple akan menolak aplikasi yang dibangun hanya untuk iOS6 atau lebih rendah. Ini juga komunikasi resmi dari Apple. Lebih baik mulai membangun untuk iOS7.
Untuk memperjelas pernyataan saya: Jika Anda membangun untuk iOS6 atau lebih rendah, apple akan menolak aplikasi Anda. Jika Anda membangun untuk iOS7 DAN menurunkan semuanya baik-baik saja, ini berarti:
Konten email Apple cukup jelas bagi saya
sumber
Saat ini saya sudah menginstal Xcode 4.6.3 dan 5.0. Saya menggunakan skrip bash berikut untuk menautkan 5.0 ke SDK di versi lama:
Anda hanya perlu menyediakannya dengan jalur ke .app:
sumber
Xcode5-DP6
yang saya dapat memulihkan 7.0.x dari, tetapi ini adalah pengingat yang baik untuk membuat cadangan dir SDK (atau mengubah nama aplikasi sepenuhnya) sebelum memutakhirkan ke atau menginstal versi Xcode terbaru.