web-dev-qa-db-de.com

Wie kann ich feststellen, welche Version von Swift ich verwende?

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?

443
David Snabel

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:

enter image description here


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 )

enter image description here

250
Krunal

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.

460
matt

Öffne das Terminal und schreibe:

Swift -version
89
Alzayed

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. 

62
Aditya Deshmane

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 :)

18
alexisSchreier

Sie können sehen und auswählen, welche Swift-Version Xcode verwendet:

Target -> Build-Einstellungen -> Swift-Sprachversion:

 enter image description here

Dies ist in Xcode 8.3 und Xcode 9 verfügbar (ältere Versionen nicht geprüft)

18
joern

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

5
paul king
/usr/bin/swiftc --version

und Swift Version <-> Xcode Version

0
Jimmy Yin

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:]

0
Dan Burkhardt