Xcode içinde yeni bir Swift projesi oluşturdum. Swift'in hangi sürümünü kullandığını merak ediyorum.
Xcode'da veya terminalde, projemde hangi Swift sürümünü kullandığımı nasıl görebilirim?
Xcode içinde yeni bir Swift projesi oluşturdum. Swift'in hangi sürümünü kullandığını merak ediyorum.
Xcode'da veya terminalde, projemde hangi Swift sürümünü kullandığımı nasıl görebilirim?
Yanıtlar:
Proje oluşturma ayarlarında, Swift Dil Sürümü ile ilgili bilgileri anahtar / değer biçiminde depolayan bir 'Swift Derleyici - Diller' bloğu bulunur. Xcode'unuz ve etkin sürümünüz için tüm kullanılabilir (desteklenen) Swift Dili Sürümünü de bir onay işareti ile gösterecektir.
Proje ► (Proje Hedefinizi Seçin) ► Yapı Ayarları ► (Arama çubuğuna 'swift_version' yazın) Swift Derleyici Dili ► Swift Dil Sürümü ► Açmak için Dil listesine tıklayın (ve listelerin herhangi birinde bir onay işareti olacaktır. -item, bu geçerli hızlı sürüm olacak).
Kolay anlaşılması için bu anlık görüntüye bakın:
Aşağıdaki kodu kullanarak programlı olarak projeniz tarafından desteklenen Swift sürümünü bulabilirsiniz.
#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
İşte Oyun Alanı ( Xcode 11.x ile ) kullanarak sonuç
Ne yaptığım Terminalde:
$ xcrun swift -version
Xcode 6.3.2 için çıktı:
Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)
Tabii ki xcrun
Xcode kopyanızı doğru bir şekilde gösterdiğinizi varsayar . Benim gibi, Xcode'un çeşitli sürümlerini hokkabazlıyorsanız, bu bir endişe olabilir! Olduğundan emin olmak için,
$ xcrun --find swift
ve size gösterdiği Xcode yoluna bakın. Örneğin:
/Applications/Xcode.app/...
Bu Xcode'unuzsa, çıktı -version
doğru. Yeniden işaretlemeniz gerekiyorsa, Xcode'un xcrun
Konumlar tercih bölmesindeki Komut Satırı Araçları açılır menüsünü kullanın.
xcode-select -p
xcrun'un kullanacağı Xcode yolunu yazdırmak ve sudo xcode-select -s /path/to/Xcode.app
değiştirmek için de kullanabilirsiniz .
Xcode 8.3'den itibaren Build Settings
, Swift Language Version
hedefinizin kullandığı hızlı sürüm değerine sahip bir anahtar vardır.
Daha eski X kodları için bu çözümü kullanın, terminali açın ve aşağıdaki komutları yazın
Durum 1: Yalnızca bir Xcode Uygulaması yüklediniz
swift -version
Durum 2: Birden çok Xcode Uygulaması yüklediniz
Değiştir active developer directory
( Hızlı Xcode_7.3.app
komutunu kontrol etmek istediğiniz Uygulama dizinindeki Xcode uygulama dosya adınızla aşağıdaki komutu değiştirin )
sudo xcode-select --switch /Applications/Xcode_7.3.app/Contents/Developer
Sonra
swift -version
NOT: Xcode 8, varsayılan hızlı sürüm olarak swift 3.x kullanıyor olsa da, Xcode 8'den Xcode 8.2.x'e swift 2.3 kullanabilirsiniz. Kullanım Swift 2.3 için, sadece bayrak açmak Use Legacy Swift Language Version
için YES
gelen Build Setting
ve XCode bu proje hedefi için Swift 2.3 kullanacaktır.
Hangi Swift sürüm Xcode'un kullanıldığını görebilir ve seçebilirsiniz:
Hedef -> Oluşturma Ayarları -> Hızlı Dil Sürümü :
Bu, Xcode 8.3 ve Xcode 9'da mevcuttur (eski sürümleri kontrol etmediniz)
Swift Language Version
Xcode 8.2.1 projemde bir ayar olarak görünmüyor. Var Use Legacy Swift Language Version
.
Swift Language Version
burada yoktu , = Swift 3 ve = Swift 2.3Build Settings
Use Legacy Swift Language Version
No
Yes
Bu reddit yayını bana yardımcı oldu: https://www.reddit.com/r/swift/comments/4o8atc/xcode_8_which_swift/d4anpet
Xcode 8, varsayılan olarak Swift 3.0 kullanır. Ancak Swift 2.3'ü açabilirsiniz. Projenin Derleme Ayarlarına gidin ve 'Eski Swift Dil Sürümünü Kullan' seçeneğini YES olarak ayarlayın.
İyi eski reddit :)
Makinenizde yüklü olan hızlı swift sürümünü görmek için komut satırından şunu yazın:
swift --version
Apple Swift sürüm 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2)
Hedef: x86_64-apple-darwin17.6.0
Bu, büyük olasılıkla yüklediğiniz Xcode'un uygulama mağazası sürümüne dahil olan sürümdür (değiştirmediyseniz).
Swift'in gerçek bir Xcode sürümü (örneğin bir beta) tarafından kullanılmakta olan gerçek sürümünü belirlemek istiyorsanız, komut satırından, Xcode paketi içinde swift ikilisini çağırın ve --version parametresini iletin.
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift --version
Apple Swift sürüm 4.2 (swiftlang-1000.0.16.7 clang-1000.10.25.3)
Hedef: x86_64-apple-darwin17.6.0
/usr/bin/swiftc --version
Bonus katkısı: Jazzy belgeleriyle kullanım için temiz bir dize ayıklamak için özel bir node.js komut dosyası kullanıyorum. Geliştirme sürecinizde çalışacak bir yer bulabilirseniz, bundan faydalanabilirsiniz:
Bash betiğinden çağrıldı:
#!/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
Elbette regex kullanabilirsiniz, ama ne istersen yap:]