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?
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:
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 )
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.
Ouvrez le terminal et écrivez:
Swift -version
À 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.
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 :)
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
/usr/bin/swiftc --version
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
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:]