Selain judul stackoverflow.com/questions/29140476/... Saya tidak menemukan kesamaan dengan pertanyaan ini yang cukup untuk melabeli pertanyaan ini karena merupakan duplikat . Inti dari pertanyaan ini bukanlah bagaimana menemukan versi Swift secara terprogram , tetapi bagaimana menemukan versi Swift secara umum (melalui terminal atau Xcode atau dll.). Ini perbedaan besar.
David Snabel
Jawaban:
407
Pengaturan membangun proyek memiliki blok 'Swift Compiler - Languages', yang menyimpan informasi tentang Versi Bahasa Swift dalam format nilai kunci. Ini akan menunjukkan kepada Anda semua Versi Bahasa Swift yang tersedia (didukung) untuk Xcode Anda dan versi aktif juga dengan tanda centang.
Proyek ► (Pilih Target Proyek Anda) ► Setelan Bangun ► (Ketik 'swift_version' di bilah pencarian) Bahasa Kompilasi Cepat ► Versi Bahasa Swift ► Klik pada daftar Bahasa untuk membukanya (dan akan ada tanda centang pada salah satu daftar) -item, itu akan menjadi versi cepat saat ini).
Lihat snapshot ini, untuk memudahkan pemahaman:
Dengan bantuan kode berikut, secara terprogram Anda dapat menemukan versi Swift yang didukung oleh proyek Anda.
#if swift(>=5.2)
print("Hello, Swift 5.2")#elseif swift(>=5.1)
print("Hello, Swift 5.1")#elseif swift(>=5.0)
print("Hello, Swift 5.0")#elseif swift(>=4.2)
print("Hello, Swift 4.2")#elseif swift(>=4.1)
print("Hello, Swift 4.1")#elseif swift(>=4.0)
print("Hello, Swift 4.0")#elseif swift(>=3.2)
print("Hello, Swift 3.2")#elseif swift(>=3.0)
print("Hello, Swift 3.0")#elseif swift(>=2.2)
print("Hello, Swift 2.2")#elseif swift(>=2.1)
print("Hello, Swift 2.1")#elseif swift(>=2.0)
print("Hello, Swift 2.0")#elseif swift(>=1.2)
print("Hello, Swift 1.2")#elseif swift(>=1.1)
print("Hello, Swift 1.1")#elseif swift(>=1.0)
print("Hello, Swift 1.0")#endif
Ini adalah hasil menggunakan Playground (dengan Xcode 11.x )
Saya pikir ini jawaban yang benar. Lebih mudah daripada menelepon terminal. (terutama jika Anda memiliki versi Xcode yang berbeda diinstal)
Mike Keskinov
17
Ini adalah jawaban yang benar karena versi cepat dikonfigurasikan pada basis per target.
Andrew Paul Simmons
2
Saya tidak melihat propoerty ini dalam proyek saya dengan Xcode 8.1
logoff
6
Anda dapat melihat properti ini di versi terbaru dari xcode
Parkhya Dev
1
@JonMcClung - Opsi yang sama juga tersedia di Xcode 10.1. Saya baru saja memeriksanya.
Krunal
500
Apa yang saya lakukan adalah katakan di Terminal:
$ xcrun swift -version
Output untuk Xcode 6.3.2 adalah:
AppleSwift version 1.2(swiftlang-602.0.53.1 clang-602.0.53)
Tentu saja itu mengasumsikan bahwa Anda xcrunmenunjuk salinan Xcode Anda dengan benar. Jika, seperti saya, Anda menyulap beberapa versi Xcode, itu bisa mengkhawatirkan! Untuk memastikan itu, katakan
$ xcrun --find swift
dan lihat jalur ke Xcode yang ditunjukkannya kepada Anda. Sebagai contoh:
/Applications/Xcode.app/...
Jika itu Xcode Anda, maka output dari -versionakurat. Jika Anda perlu melakukan repoint xcrun, gunakan menu pop-up Command Line Tools di panel preferensi Lokasi Xcode.
Anda juga dapat menggunakan xcode-select -puntuk mencetak path ke Xcode yang akan digunakan xcrun, dan sudo xcode-select -s /path/to/Xcode.appuntuk mengubahnya.
Jack Lawrence
4
Saya baru mulai belajar pengembangan ios dan saya terkejut bahwa xcode tidak membiarkan Anda memilih versi swift atau bahkan memberi tahu Anda versi dari GUI.
Alex
@ RadekWilczak Saya tidak tahu apa yang Anda maksud dengan "seharusnya". Saya baru saja menyalin perintah yang diposting dan disisipkan ke Terminal dan tekan Return, dan itu berhasil. Jadi mungkin ada alternatif lain, tetapi apa yang saya katakan tidak salah.
matt
1
Ini memberi saya jawaban yang salah. Karena swift dikonfigurasi per target. Lihat jawaban di bawah ini dari @ Kwrunal untuk jawaban terbaik.
Andrew Paul Simmons
Saya setuju dengan semua "cara yang benar adalah mengatur SWIFT_VERSION" per proyek. Namun, dalam versi Xcode sebelumnya seperti 8.2, itu tidak menyatakan dengan jelas di UI versi XCode apa yang didukung dalam proyek, dan hanya memiliki "Gunakan Versi Bahasa Swift Legacy" di UI dengan Ya, Tidak, tidak ditentukan. Pendekatan baris perintah sangat berguna untuk dapat dengan cepat menanyakan jawaban untuk apa versi max swift yang tersedia.
Ini belum tentu versi cepat yang Xcode lihat. Selain itu, Anda dapat melakukan swift tanpa memiliki Xcode.
asiby
64
Dari Xcode 8.3 dan seterusnya Build Settingsmemiliki kunci Swift Language Versiondengan nilai versi cepat yang digunakan target Anda.
Untuk Xcode yang lebih lama gunakan solusi ini, buka terminal dan ketik perintah berikut
Kasus 1: Anda hanya menginstal satu Aplikasi Xcode
swift -version
Kasus 2: Anda telah menginstal beberapa Aplikasi Xcode
Beralih active developer directory(Ganti Xcode_7.3.appdari perintah berikut dengan nama file aplikasi Xcode Anda dari direktori Aplikasi yang ingin Anda periksa versi cepatnya)
CATATAN: Dari Xcode 8 ke Xcode 8.2.x Anda dapat menggunakan swift 2.3 meskipun Xcode 8 menggunakan swift 3.x sebagai versi swift default. Untuk menggunakan swift 2.3, cukup nyalakan flag Use Legacy Swift Language Versionke YESdari Build Settingdan XCode akan menggunakan Swift 2.3 untuk target proyek itu.
Swift Language Versiontidak muncul sebagai pengaturan dalam proyek Xcode 8.2.1 saya. Itu memang ada Use Legacy Swift Language Version.
Chris Prince
1
@ ChrisPrince Ya, Swift Language Versiontidak ada di sini Build Settingssampai Xcode 8.3 .... di versi Xcode 8.x sebelumnya Use Legacy Swift Language Version, No= Swift 3, dan Yes= Swift 2.3
Xcode 8 menggunakan Swift 3.0 sebagai default. Tetapi Anda dapat mengaktifkan Swift 2.3. Pergi ke Pengaturan Bangun proyek dan set 'Gunakan Versi Bahasa Swift Legacy' ke YES.
Saya tidak dapat menemukan ini dengan mencari 'Gunakan Versi Bahasa Legacy Swift' atau 'Legacy'
JerryZhou
Saya menggunakan Xcode Version 8.3.2 (8E2002) terbaru dan swift 3 di Swift Language Version. Sekarang saya ingin mengubahnya ke swift 2.3 tetapi hanya ada satu opsi swift 3.0 dan 2nd tidak ditentukan. jadi tolong bantu bagaimana ini mungkin? mendapatkan Swift 2.3 di proyek saya saat ini? @alexisSchreier
Arsal
15
Untuk melihat versi default swift yang diinstal pada mesin Anda kemudian dari baris perintah, ketikkan yang berikut:
swift --version
Apple Swift versi 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2)
Target: x86_64-apple-darwin17.6.0
Kemungkinan besar ini adalah versi yang disertakan dalam versi Xcode app store yang telah Anda instal (kecuali Anda telah mengubahnya).
Jika Anda ingin menentukan versi aktual Swift yang digunakan oleh versi Xcode tertentu (beta, misalnya) dari baris perintah, aktifkan biner cepat dalam bundel Xcode dan berikan parameter --version
Kontribusi bonus: Saya menggunakan skrip node.js khusus untuk mengekstrak string bersih untuk digunakan dengan dokumentasi Jazzy. Anda mungkin dapat menggunakan ini jika Anda dapat menemukan tempat untuk mengerjakannya dalam proses dev Anda:
Dipanggil dari skrip Bash:
#!/bin/bash
swiftversion=$(node SwiftVerSlicer.js "${xcrun swift -version}");
echo $swiftversion
SwiftVerSlicer.js:
// begin script
const inputString =`${process.argv[2]}`let searchTerm =(inputString.indexOf('(')-1)//-1 cause whitespace
let version = inputString.slice(0,searchTerm)
console.log(version)// end script
Anda juga dapat menggunakan regex tentu saja, tetapi lakukan apa pun yang Anda suka:]
baik saya akan membuang direktori proyek utama dan ketika Anda mengetik "bahasa cepat" itu hanya menunjukkan versi cepat di atas di Bangun Pengaturan tidak lain dari itu ..
viral goti
-1
Anda akan mendapatkan ini di bawah pengaturan proyek
Jawaban:
Pengaturan membangun proyek memiliki blok 'Swift Compiler - Languages', yang menyimpan informasi tentang Versi Bahasa Swift dalam format nilai kunci. Ini akan menunjukkan kepada Anda semua Versi Bahasa Swift yang tersedia (didukung) untuk Xcode Anda dan versi aktif juga dengan tanda centang.
Lihat snapshot ini, untuk memudahkan pemahaman:
Dengan bantuan kode berikut, secara terprogram Anda dapat menemukan versi Swift yang didukung oleh proyek Anda.
Ini adalah hasil menggunakan Playground (dengan Xcode 11.x )
sumber
Apa yang saya lakukan adalah katakan di Terminal:
Output untuk Xcode 6.3.2 adalah:
Tentu saja itu mengasumsikan bahwa Anda
xcrun
menunjuk salinan Xcode Anda dengan benar. Jika, seperti saya, Anda menyulap beberapa versi Xcode, itu bisa mengkhawatirkan! Untuk memastikan itu, katakandan lihat jalur ke Xcode yang ditunjukkannya kepada Anda. Sebagai contoh:
Jika itu Xcode Anda, maka output dari
-version
akurat. Jika Anda perlu melakukan repointxcrun
, gunakan menu pop-up Command Line Tools di panel preferensi Lokasi Xcode.sumber
xcode-select -p
untuk mencetak path ke Xcode yang akan digunakan xcrun, dansudo xcode-select -s /path/to/Xcode.app
untuk mengubahnya.Buka Terminal dan tulis:
sumber
Dari Xcode 8.3 dan seterusnya
Build Settings
memiliki kunciSwift Language Version
dengan nilai versi cepat yang digunakan target Anda.Untuk Xcode yang lebih lama gunakan solusi ini, buka terminal dan ketik perintah berikut
Kasus 1: Anda hanya menginstal satu Aplikasi Xcode
Kasus 2: Anda telah menginstal beberapa Aplikasi Xcode
Beralih
active developer directory
(GantiXcode_7.3.app
dari perintah berikut dengan nama file aplikasi Xcode Anda dari direktori Aplikasi yang ingin Anda periksa versi cepatnya)Kemudian
CATATAN: Dari Xcode 8 ke Xcode 8.2.x Anda dapat menggunakan swift 2.3 meskipun Xcode 8 menggunakan swift 3.x sebagai versi swift default. Untuk menggunakan swift 2.3, cukup nyalakan flag
Use Legacy Swift Language Version
keYES
dariBuild Setting
dan XCode akan menggunakan Swift 2.3 untuk target proyek itu.sumber
Anda dapat melihat dan memilih Xcode versi Swift mana yang digunakan di:
Target -> Pengaturan Bangun -> Versi Bahasa Swift :
Ini tersedia dalam Xcode 8.3 dan Xcode 9 (belum memeriksa versi yang lebih lama)
sumber
Swift Language Version
tidak muncul sebagai pengaturan dalam proyek Xcode 8.2.1 saya. Itu memang adaUse Legacy Swift Language Version
.Swift Language Version
tidak ada di siniBuild Settings
sampai Xcode 8.3 .... di versi Xcode 8.x sebelumnyaUse Legacy Swift Language Version
,No
= Swift 3, danYes
= Swift 2.3Posting reddit ini membantu saya: https://www.reddit.com/r/swift/comments/4o8atc/xcode_8_which_swift/d4anpet
Good reddit :)
sumber
Untuk melihat versi default swift yang diinstal pada mesin Anda kemudian dari baris perintah, ketikkan yang berikut:
Kemungkinan besar ini adalah versi yang disertakan dalam versi Xcode app store yang telah Anda instal (kecuali Anda telah mengubahnya).
Jika Anda ingin menentukan versi aktual Swift yang digunakan oleh versi Xcode tertentu (beta, misalnya) dari baris perintah, aktifkan biner cepat dalam bundel Xcode dan berikan parameter --version
sumber
dan versi cepat <--> Versi Xcode
sumber
Saya menggunakan Swift dari Google Colab. Berikut cara mengeceknya di Colab.
Hasilnya adalah
5.0-dev
sumber
Dalam hal siapa pun mencari pemetaan satu-ke-satu yang cepat dari versi Swift berdasarkan Versi Xcode:
Diperoleh dengan menjalankan perintah berikut sebagaimana disebutkan pada versi Xcode yang berbeda:
sumber
Kontribusi bonus: Saya menggunakan skrip node.js khusus untuk mengekstrak string bersih untuk digunakan dengan dokumentasi Jazzy. Anda mungkin dapat menggunakan ini jika Anda dapat menemukan tempat untuk mengerjakannya dalam proses dev Anda:
Dipanggil dari skrip Bash:
SwiftVerSlicer.js:
Anda juga dapat menggunakan regex tentu saja, tetapi lakukan apa pun yang Anda suka:]
sumber
Dengan hanya memasukkan perintah swift di terminal, ia akan menampilkan versi, sambil masuk ke konsol Swift. (Sesuatu seperti di bawah ini)
sumber
https://i.stack.imgur.com/Ojn3m.png
sumber
Anda akan mendapatkan ini di bawah pengaturan proyek
sumber