Ich habe gerade ein neues Swift-Projekt in Xcode erstellt. Ich frage mich, welche Version von Swift verwendet wird.
Wie kann ich in Xcode oder dem Terminal sehen, welche Version von Swift ich in meinem Projekt verwende?
Projekt-Build-Einstellungen enthalten einen Block "Swift Compiler - Languages", in dem Informationen zur Swift-Sprachversion im Schlüsselwertformat gespeichert werden. Es zeigt Ihnen alle verfügbaren (unterstützten) Swift-Sprachversionen für Ihren Xcode und Ihre aktive Version auch durch ein Häkchen an.
Projekt ► (Wählen Sie Ihr Projektziel) ► Build-Einstellungen ► (Typ 'Swift_version' in der Suchleiste) Swift Compiler Language ► Swift Language Version ► Klicken Sie auf Sprachenliste, um sie zu öffnen (und es wird ein Häkchen in der Liste angezeigt, das die aktuelle Swift-Version ist).
Sehen Sie sich diesen Schnappschuss zum leichteren Verständnis an:
Mit Hilfe des folgenden Codes können Sie programmgesteuert die von Ihrem Projekt unterstützte Swift-Version finden.
#if 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
Hier ist das Ergebnis mit Playground (mit Xcode 10.x )
Was ich tue, ist im Terminal zu sagen:
$ xcrun Swift -version
Die Ausgabe für Xcode 6.3.2 lautet:
Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)
Dies setzt natürlich voraus, dass Ihre xcrun
korrekt auf Ihre Xcode-Kopie zeigt. Wenn Sie wie ich mehrere Xcode-Versionen verwenden, kann dies eine Sorge sein! Um sicherzugehen, dass es das ist, sagen wir
$ xcrun --find Swift
und schaue dir den Pfad zu Xcode an, den er dir zeigt. Zum Beispiel:
/Applications/Xcode.app/...
Wenn dies Ihr Xcode ist, ist die Ausgabe von -version
genau. Wenn Sie xcrun
neu zuordnen möchten, verwenden Sie das Einblendmenü "Befehlszeilen-Tools" im Einstellungsbereich "Standorte" von Xcode.
Öffne das Terminal und schreibe:
Swift -version
Ab Xcode 8.3 hat Build Settings
den Schlüssel Swift Language Version
mit dem Wert Swift, den Ihr Ziel verwendet.
Für ältere Xcodes verwenden Sie diese Lösung Terminal öffnen und folgende Befehle eingeben
Fall 1: Sie haben nur eine Xcode-App installiert
Swift -version
Fall 2: Sie haben mehrere Xcode Apps installiert
Wechseln Sie active developer directory
(Ersetzen Sie Xcode_7.3.app
from Folgenden Befehl durch den Namen Ihrer Xcode-Anwendungsdatei aus dem Verzeichnis Application, für das Sie möchten.
Sudo xcode-select --switch /Applications/Xcode_7.3.app/Contents/Developer
Dann
Swift -version
HINWEIS: Von Xcode 8 bis Xcode 8.2.x können Sie Swift 2.3 verwenden, auch wenn Xcode 8 Swift 3.x als Standardversion von Swift verwendet. Um Swift 2.3 zu verwenden, aktivieren Sie einfach das Flag Use Legacy Swift Language Version
in YES
von Build Setting
und XCode verwendet Swift 2.3 für dieses Projektziel.
Dieser reddit Beitrag hat mir geholfen: https://www.reddit.com/r/Swift/comments/4o8atc/xcode_8_which_Swift/d4anpet
Xcode 8 verwendet standardmäßig Swift 3.0. Sie können jedoch Swift 2.3 einschalten. Gehen Sie zu den Build-Einstellungen des Projekts und setzen Sie "Use Legacy Swift Language Version" auf YES.
Guter alter Reddit :)
Geben Sie Folgendes in die Befehlszeile ein, um die auf Ihrem Computer installierte Standardversion von Swift anzuzeigen:
Swift --version
Apple Swift Version 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2)
Ziel: x86_64-Apple-darwin17.6.0
Dies ist höchstwahrscheinlich die Version, die in der App Store-Version von Xcode enthalten ist, die Sie installiert haben (sofern Sie sie nicht geändert haben).
Wenn Sie die tatsächliche Version von Swift ermitteln möchten, die von einer bestimmten Version von Xcode (z. B. einer Betaversion) verwendet wird, rufen Sie über die Befehlszeile die Swift-Binärdatei im Xcode-Bundle auf und übergeben Sie den Parameter --version
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/Swift --version
Apple Swift Version 4.2 (swiftlang-1000.0.16.7 clang-1000.10.25.3)
Ziel: x86_64-Apple-darwin17.6.0
/usr/bin/swiftc --version
Ich benutze Swift von Google Colab. Hier erfahren Sie, wie Sie dies in Colab überprüfen können.
!/Swift/toolchain/usr/bin/Swift --version
Das Ergebnis ist 5.0-dev
Bonusbeitrag: Ich verwende ein benutzerdefiniertes node.js-Skript, um eine saubere Zeichenfolge zur Verwendung mit der Jazzy-Dokumentation zu extrahieren. Sie könnten davon Gebrauch machen, wenn Sie einen Ort finden können, an dem Sie es in Ihren Entwicklungsprozess einarbeiten können:
Aus einem Bash-Skript aufgerufen:
#!/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
Sie können natürlich auch Regex verwenden, aber machen Sie, was Sie möchten:]