web-dev-qa-db-fra.com

Comment voir quelle version de Swift j'utilise?

Je viens de créer un nouveau projet Swift dans Xcode. Je me demande quelle version de Swift utilise. 

Comment puis-je voir, dans Xcode ou le terminal, quelle version de Swift j'utilise dans mon projet?

443
David Snabel

Les paramètres de construction du projet ont un bloc 'Swift Compiler - Languages', qui stocke des informations sur Swift Language Version au format clé-valeur. Il vous indiquera toutes les versions de Swift Language disponibles (prises en charge) pour votre Xcode et la version active également avec une coche.

Projet ► (Sélectionnez la cible de votre projet) ► Paramètres de construction ► (Type 'Version_version' dans la barre de recherche) Langue du compilateur Swift ► Langue rapide Version ► Cliquez sur la liste de langues pour l'ouvrir (il y aura une coche sur l'un des éléments de la liste, qui sera la version actuelle de Swift).

Regardez cet instantané, pour une compréhension facile:

enter image description here


Avec l'aide du code suivant, vous pouvez trouver par programme la version de Swift prise en charge par votre projet.

#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

Voici le résultat en utilisant Playground (avec Xcode 10.x )

enter image description here

250
Krunal

Ce que je fais est de dire dans le terminal:

$ xcrun Swift -version

La sortie pour Xcode 6.3.2 est:

Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)

Bien sûr, cela suppose que votre xcrun pointe correctement sur votre copie de Xcode. Si, comme moi, vous jonglez avec plusieurs versions de Xcode, cela peut être inquiétant! Pour s’assurer que c’est, disons

$ xcrun --find Swift

et regardez le chemin vers Xcode qu'il vous montre. Par exemple:

/Applications/Xcode.app/...

Si c'est votre Xcode, alors la sortie de -version est exacte. Si vous devez repérer xcrun, utilisez le menu contextuel Outils de ligne de commande situé dans le volet de préférences Emplacement de Xcode.

460
matt

Ouvrez le terminal et écrivez:

Swift -version
89
Alzayed

À partir de Xcode 8.3, Build Settings a la clé Swift Language Version avec la valeur Swift version utilisée par votre cible.

Pour les codes X plus anciens, utilisez cette solution: Open terminal et tapez les commandes suivantes 

Cas 1: Vous n'avez installé qu'une seule application Xcode  

Swift -version

Cas 2: Vous avez installé plusieurs applications Xcode

  • Commutez active developer directory (remplacez Xcode_7.3.app à partir de Commande suivante par le nom de fichier de votre application Xcode dans le répertoire Application pour lequel vous souhaitez vérifier la version de Swift)

     Sudo xcode-select --switch /Applications/Xcode_7.3.app/Contents/Developer
    
  • Ensuite

     Swift -version
    

REMARQUE: De Xcode 8 à Xcode 8.2.x, vous pouvez utiliser Swift 2.3 même si Xcode 8 utilise Swift 3.x comme version par défaut de Swift. Pour utiliser Swift 2.3, il suffit d'activer l'indicateur Use Legacy Swift Language Version à YES à partir de Build Setting et XCode utilisera Swift 2.3 pour cette cible de projet. 

62
Aditya Deshmane

Ce post de reddit m'a aidé: https://www.reddit.com/r/Swift/comments/4o8atc/xcode_8_which_Swift/d4anpet

Xcode 8 utilise Swift 3.0 par défaut. Mais vous pouvez activer Swift 2.3. Accédez aux paramètres de construction du projet et définissez 'Utiliser la version en langage Swift traditionnel' sur Oui.

Bon vieux reddit :)

18
alexisSchreier

Vous pouvez voir et sélectionner la version de Swift que Xcode utilise dans:

Cible -> Paramètres de construction -> Version du langage Swift:

 enter image description here

Ceci est disponible dans Xcode 8.3 et Xcode 9 (n’a pas vérifié les anciennes versions)

18
joern

Pour voir la version par défaut de Swift installée sur votre ordinateur, tapez ce qui suit à partir de la ligne de commande:

Swift --version

Apple Swift version 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2)

Cible: x86_64-Apple-darwin17.6.0

Il s'agit probablement de la version incluse dans la version de Xcode que vous avez installée dans l'App Store (à moins que vous ne l'ayez modifiée).

Si vous souhaitez déterminer la version réelle de Swift utilisée par une version particulière de Xcode (une version bêta, par exemple), appelez le fichier binaire Swift dans le paquet Xcode à partir de la ligne de commande et transmettez-lui le paramètre --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)

Cible: x86_64-Apple-darwin17.6.0

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

et Version Swift <-> Version Xcode

0
Jimmy Yin

J'utilise Swift de Google Colab. Voici comment le vérifier dans Colab.

!/Swift/toolchain/usr/bin/Swift --version

Le résultat est 5.0-dev

0

Contribution bonus: J'utilise un script node.js personnalisé pour extraire une chaîne propre à utiliser avec la documentation de Jazzy. Cela pourrait vous être utile si vous pouviez trouver un endroit où l'intégrer dans votre processus de développement:

Invoqué à partir d'un script 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

Vous pouvez aussi utiliser regex bien sûr, mais faites ce que vous voulez:]

0
Dan Burkhardt