Bagaimana cara memperbaiki "SWIFT_VERSION '3.0' tidak didukung, versi yang didukung adalah: 4.0, 4.2, 5.0" kesalahan di Xcode 10.2?

118

Saya mencoba menjalankan unduhan dari aplikasi, coba buka di Xcode dan mengalami kesalahan:

"Menampilkan Pesan Terbaru
: -1: SWIFT_VERSION '3.0' tidak didukung, versi yang didukung adalah: 4.0, 4.2, 5.0. (Dalam target 'SimpleWeather')"

Tangkapan layar ditambahkan

vlad uvarov
sumber
Perbarui barang. 3.0 cukup tua dalam hal kecepatan evolusi Swift
vadian
2
Saya menggunakan Xcode 10.2 dan mencoba membuka 3.0 lama, tetapi tidak dapat menjalankan program karena saya mengalami kesalahan.
vlad uvarov
Buka dan perbarui proyek di Xcode 10.1. Dimungkinkan untuk memiliki beberapa versi Xcode yang berbeda pada disk.
vadian
1
versi terbaru dari Xcode; (
vlad uvarov
7
OH TUHAN!!! Saya membutuhkan waktu tiga jam untuk mengunduh XCode 10.2 hanya untuk mengetahui bahwa saya tidak dapat membangun aplikasi saya lagi. Saya tidak memiliki cadangan XCode 10.1! Ini hanya kegilaan yang harus dibayar Apple kepada saya.
vojta

Jawaban:

99

Pilih target 'SimpleWeather' dalam proyek dan ubah versi bahasa Target-> build setting -> Swift compiler language -> pilih 5, 4.2 dll

gambar pengaturan build untuk mengubah bahasa compiler

Xeneka
sumber
76

******** Cara termudah: **********

1. Klik pada POD di kolom kiri.

2. Di kolom tengah pilih pod yang Anda inginkan, lalu buka "build settings" di panel kanan atas.

3. Kemudian cari "Versi Bahasa Swift" dan ubah ke versi yang dikenal.

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Kingsley Mitchell
sumber
1
Terima kasih. Ini adalah jawaban yang saya cari.
Vinu Jacob
Tangkapan layar sangat membantu untuk dicari.
Namo
53

Untuk Xcode 10.1, pilih File Pod Anda

masukkan deskripsi gambar di sini

-> Buka Pengaturan Build -> Pilih Pod Anda -> Cari "Swift" -> Navigasikan ke "Versi Bahasa Swift" -> Setel ke versi bahasa yang diinginkan.

masukkan deskripsi gambar di sini

Deepak Chaudhary
sumber
9
Solusi ini tidak berfungsi jika versi Swift adalah 3.xdan Anda memiliki versi Xcode yang lebih besar daripada10.2
Juan P. Ortiz
12

Saya mengikuti petunjuk di halaman ini dan kesalahan tidak teratasi. Akhirnya, masuklah

$ vim MyProject.xcodeproj/project.pbxproj

dan menemukan dua contoh di mana

SWIFT_VERSION = 3.0;

masih direferensikan. Saya mengubahnya menjadi 5.0 dan kesalahan itu hilang. Tidak yakin mengapa keduanya masih ada.

Forrest
sumber
1
Saya menggunakan panduan Apple untuk migrasi dari Swift 3.0 ke 5.0, namun asisten tidak menunjukkan saran apa pun. Segera setelah saya mengubah dua baris ini pada jawaban di atas, itu mendorong saya untuk segera bermigrasi. Terima kasih telah membagikan solusi ini @Forrest !
Kareem Jeiroudi
Hebat! Senang bisa membantu Anda @Kareemeiroudi
Forrest
2
Terima kasih, Ini sangat membantu saya. Saya googling setengah jam dan menemukan solusi ini ...
Dharmik
2
Ini berhasil juga untuk saya. Melakukan kelas di atasnya dan proyek contoh berada dalam versi yang salah.
sixstring
11
  1. Pilih proyek
  2. Pilih Build SettingTab
  3. Pilih opsi bahasa Swift Compiler

masukkan deskripsi gambar di sini

Manoj Rawat
sumber
10

masukkan deskripsi gambar di sinipilih pod seperti per gambar dan ubah versi bahasa cepat ini dapat menyelamatkan Anda suatu hari nanti

masukkan deskripsi gambar di sini

Govind Wadhwa
sumber
7

Tampaknya aplikasi tersebut mungkin memiliki kode versi Swift lama seperti Swift 3.0 dalam kasus Anda. Dalam rilis Xcode versi 10.2 telah meluncurkan versi Swift 5.0. Xcode 10.2 tidak mendukung kompiler untuk versi Swift 3.0. Anda dapat mengubah kompiler dari Build Settings -> Swift Compiler - Language -> Swift Language Version -> Change it to Swift 5. Jika kode Anda kompatibel dengan versi bahasa itu, maka kode akan menjalankan kode tanpa kesalahan.

Namun, mode kompatibilitas Swift 3 tidak akan didukung di kompiler Swift 5. Swift 4.2 adalah rilis terakhir Swift yang mendukung mode Swift 3. Ada perubahan penting pada permukaan bahasa dan interior implementasinya dalam rilis setelah Swift 3 yang akan menjadi dasar sumber masa depan (dan abadi) dan stabilitas biner.

Lihat tautan di bawah ini untuk lebih jelasnya. https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_release_notes/swift_5_release_notes_for_xcode_10_2

Jika Anda benar-benar ingin menjalankan aplikasi yang memiliki kode versi Swift yang lebih lama daripada Anda harus menggunakan Xcode versi yang lebih lama. Anda dapat menggunakan Xcode versi 10.1, kompilernya memiliki dukungan untuk versi Swift 3.0.

Cara alternatif lainnya adalah dengan memigrasi kode Swift lama Anda ke versi baru versi Swift. Anda dapat memigrasi Swift 3.0 ke Swift 4.0 dalam versi Xcode 10.1.

Untuk panduan migrasi, lihat https://swift.org/migration-guide-swift4/

Bhavin_m
sumber
5

Saya menemukan masalah ini saat mengembangkan Cocoapod. Saya sudah tua.swift-version file di repo saya yang menentukan Swift 3.0.

Berlari pod lib lint --verbosemembawa saya ke respons bermanfaat ini:

Hapus .swift-versionfile yang sekarang tidak digunakan lagi dan hanya menggunakan swift_versionatribut dalam podspec Anda.

Saya menghapus file dan menambahkannya spec.swift_version = '5.0'ke file podspec saya untuk memperbaiki masalah.

Justin Vallely
sumber
5
  1. Lihat ini:
    1. Klik pada nama Proyek
    2. Target klik
    3. Klik pada Build setting
    4. Di Versi Bahasa Swift: Pilih Swift 4

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

pembuat kode
sumber
5

Saya membuka file MyProject.xcodeproj (menggunakan editor VSCode)

dan saya menemukan beberapa baris di mana

SWIFT_VERSION = 3,0;

(di sekitar baris 400 di mana dikatakan /* Begin XCBuildConfiguration section */)

Ubah ke SWIFT_VERSION = 5.0 atau lainnya. Setelah itu saya bisa membangun dan menjalankan proyek tersebut.

Dan Alboteanu
sumber
3

Cari Swift dan klik dua kali, lalu ubah setiap versi yang melanggar.

masukkan deskripsi gambar di sini

ScottyBlades
sumber
1

Jika Anda memiliki beberapa file pod seperti yang saya lakukan dan Anda mengalami masalah dalam menemukan pod dengan SWIFT_Version = 3.0 coba bilah pencarian

William
sumber
0

1) ubah versi pod di podfile (karena library menulis versi swift lama)

2) "pod install" di terminal

Erhan Demirci
sumber
0

Saya baru dalam pengembangan iOS. Setelah saya mengikuti semua jawaban di atas, saya masih mendapatkan kesalahan yang sama. Saya menggunakan Xcode 11 dan saya mengunduh contoh " FoodTracker " dari situs web Pengembang Apple dan saya mendapatkan kesalahan yang sama setelah mencoba membuatnya. Saya menemukan bahwa proyek memiliki beberapa pengaturan yang mengacu pada versi bahasa Swift setelah VIM konten file proyek. Jadi, saya menyelesaikan ini dengan terlebih dahulu mengatur "Project> FoodTracker", dan juga "TARGETS> FoodTracker" dan "TARGETS> FoodTrackerTests" ke Versi Bahasa Swift ke 5.0. Semoga membantu.

Menetapkan Versi Bahasa Swift pada Proyek dan SEMUA Target

Jo Poon
sumber
-1
  1. buka MyProject.xcodeproj / project.pbxproj di editor (eq Sublime)

contoh Calculator.xcodeproj

  1. Ubah nama semua SWIFT_VERSION = 3.0; Ubah nama semua SWIFT_VERSION = 5.0;

masukkan deskripsi gambar di sini

Lamhot
sumber