Saya baru saja memperbarui xcode ke versi 9. Sebelum itu di Xcode 8.x setiap kali saya menggunakannya untuk melakukannya pod update
menunjukkan kepada saya kode pembaruan untuk mengubah kode ke Swift 3 dan melakukan itu menyelesaikan kesalahan. Tapi sekarang ini memberi saya kesalahan ini:
Setelan build "Versi Bahasa Swift" (SWIFT_VERSION) harus disetel ke nilai yang didukung untuk target yang menggunakan Swift. Pengaturan ini dapat diatur di editor pengaturan build.
Untuk kesalahan ini saya sudah mencoba Build Settings > Swift Language Version
dan itu adalah Swift 3.2 Tetapi karena panggilan pembaruan telah menginstal ulang beberapa pod seperti Alamofire dan dikatakan untuk menginstal Xcode 8.x untuk mengonversi kode ke Swift 3 jadi apakah saya perlu menginstal versi tambahan dengan Xcode terbaru? Jika ya, lalu bagaimana cara menginstal Xcode 8 dengan Xcode 9?
Jawaban:
Jawaban untuk pertanyaan
Anda : Anda dapat mengunduh Xcode 8.x dari Portal Unduhan Apple atau Unduh Xcode 8.3.3 (atau lihat: Di mana mengunduh Xcode versi lama ), jika Anda memiliki akun pengembang premium (id apple). Anda dapat menginstal & bekerja dengan Xcode 9 dan Xcode 8.x dalam satu sistem (mac). (Pastikan Anda telah
Command Line Tools
mendukung kedua versi Xcode, untuk bekerja dengan terminal (lihat: Cara menginstal 'Alat Baris Perintah' ))Petunjuk: Bagaimana untuk bermigrasi kode Anda Xcode 9 versi Swift kompatibel (Swift 3.2 atau 4)
Xcode 9 memungkinkan konversi / migrasi dari
Swift 3.0
keSwift 3.2/4.0
saja. Jadi jika versi bahasa Swift proyek Anda saat ini di bawah 3.0 maka Anda harus memigrasi kode Anda dalam versi yang kompatibel dengan Swift 3 Menggunakan Xcode 8.x.Ini adalah pesan kesalahan umum yang ditampilkan Xcode 9 jika ia mengidentifikasi bahasa Swift di bawah 3.0, selama migrasi.
Swift 3.2 didukung oleh Xcode 9 & Xcode 8 keduanya.
Ubah kode sumber Anda dari Swift 2.0 ke 3.2 menggunakan Xcode 8 dan kemudian lanjutkan dengan Xcode 9 (Swift 3.2 atau 4).
Untuk migrasi kode yang lebih mudah, ikuti langkah-langkah berikut: (ini akan membantu Anda mengonversi ke versi swift terbaru yang didukung oleh Xcode Tool Anda)
sumber
Untuk Proyek Objective C yang dibuat menggunakan Xcode 8 dan sekarang dibuka di Xcode 9, ini menunjukkan kesalahan yang sama seperti yang disebutkan dalam pertanyaan.
Untuk memperbaikinya, Tekan tombol + di Build Settings dan pilih Add User-Defined Setting seperti yang ditunjukkan pada gambar di bawah ini
Kemudian pada baris baru dibuat add
SWIFT_VERSION
as key dan3.2
sebagai nilai seperti di bawah ini.Ini akan memperbaiki kesalahan untuk proyek tujuan c.
sumber
Saya baru saja mendapatkan ini setelah membuat proyek Objective-C baru di Xcode 10, setelah saya menambahkan file model Data Inti ke proyek.
Saya menemukan dua cara untuk memperbaikinya:
Model berisi file "konten" dengan baris ini:
Di sana ada jalan
sourceLanguage="Swift"
masuk. Ubah kesourceLanguage="Objective-C"
dan kesalahan hilang.Untuk menemukan file "isi", klik kanan
.xcdatamodeld
di Xcode dan lakukan "Show in Finder". Klik kanan pada file (Finder) yang sebenarnya dan lakukan "Show Package Contents"Selain itu: Mengubah bahasa model akan menghentikan Xcode membuat file subkelas objek terkelola di Swift.
sumber
Ini dapat terjadi ketika Anda menambahkan Data Inti ke proyek yang ada.
Periksa:
<Name> / <Name> .xcdatamodeld / <Name> .xcdatamodel / content
file.
File ini berisi entri "sourceLanguage" yang (secara default) mungkin telah disetel ke "Swift". Ubah ke "Objective-C".
sumber
Saya cukup mengklik tombol konversi cepat terbaru dan mengatur pengaturan target App build-> Versi bahasa Swift: swift 4.0,
Semoga ini bisa membantu.
sumber
Solusi ini berfungsi ketika tidak ada yang berfungsi:
Saya menghabiskan lebih dari seminggu untuk mengubah keseluruhan proyek dan menemukan solusi di bawah ini:
Pertama, batalkan integrasi cocopods dependency dari proyek, lalu mulailah mengonversi proyek ke versi swift terbaru.
Buka Direktori Proyek di Terminal dan Ketik:
Ini akan menghentikan integrasi cocopods dari proyek dan Tidak ada jejak CocoaPods yang tertinggal di proyek. Tetapi pada saat yang sama, itu tidak akan menghapus xcworkspace dan podfiles. Tidak apa-apa jika mereka hadir.
Sekarang Anda harus membuka xcodeproj (bukan xcworkspace) dan Anda akan mendapatkan banyak kesalahan karena Anda telah memanggil metode ketergantungan cocoapods dalam proyek utama Anda.
Jadi untuk menghapus kesalahan tersebut Anda memiliki dua opsi:
Setelah semua kesalahan dihapus, Anda dapat mengonversi kode ke versi swift terbaru.
Terkadang jika Anda mendapatkan kesalahan aneh, coba bersihkan data turunan dan coba lagi.
sumber
mungkin Anda perlu mengunduh toolchain. Kesalahan ini terjadi jika Anda tidak memiliki versi compiler swift yang benar.
sumber
Dalam kasus saya, semua peringatan menghilang setelah saya langsung mengubah versi swift dari 2.x menjadi 4.0 dalam pengaturan build kecuali dua peringatan.
Peringatan ini terkait dengan folder
myprojectnameTests
danmyprojectnameUITests
. Saya tidak memperhatikan dan saya pikir ini terkait dengan imigrasi langsung dari Xcode 7 ke Xcode 9 dan saya pikir saya tidak dapat menyelesaikan masalah ini dan saya harus menginstal versi Xcode 8 yang terlewat.Dalam kasus saya, saya menghapus folder ini dan semua peringatan menghilang, tetapi Anda dapat membuat ulang folder ini dan berisi menggunakan ini:
file > new > target > (uitest or unittest extensions)
dan gunakan artikel ini untuk membuat kasus uji: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/04-writing_tests.html
sumber