Outre le titre de stackoverflow.com/questions/29140476/… je ne trouve aucune similitude avec cette question qui suffit pour étiqueter cette question car elle est en double . L'essence de cette question n'est pas de savoir comment trouver la version de Swift par programme , mais comment trouver la version de Swift de manière générale (via un terminal ou Xcode ou etc.). C'est une grande différence.
David Snabel
Réponses:
407
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 montrera toutes les versions de langue Swift disponibles (prises en charge) pour votre Xcode et la version active également par une coche.
Projet ► (Sélectionnez la cible de votre projet) ► Paramètres de construction ► (Tapez 'swift_version' dans la barre de recherche) -item, ce sera la version swift actuelle).
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.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
Voici le résultat en utilisant Playground (avec Xcode 11.x )
Je pense que c'est la bonne réponse. Plus simple que d'appeler le terminal. (surtout si vous avez une version différente de Xcode installée)
Mike Keskinov
17
C'est la bonne réponse, car la version rapide est configurée par cible.
Andrew Paul Simmons
2
Je ne vois pas cette propriété dans mon projet avec Xcode 8.1
déconnexion
6
vous pouvez voir cette propriété sur les dernières versions de xcode
Parkhya Dev
1
@JonMcClung - La même option est également disponible dans Xcode 10.1. Je viens de le vérifier.
Krunal
500
Ce que je fais, c'est dire dans le terminal:
$ xcrun swift -version
La sortie pour Xcode 6.3.2 est:
AppleSwift version 1.2(swiftlang-602.0.53.1 clang-602.0.53)
Bien sûr, cela suppose que votre xcrunpointe correctement votre copie de Xcode. Si, comme moi, vous jonglez avec plusieurs versions de Xcode, cela peut vous inquiéter! Pour vous en assurer, dites
$ xcrun --find swift
et regardez le chemin vers Xcode qu'il vous montre. Par exemple:
/Applications/Xcode.app/...
Si c'est votre Xcode, la sortie de -versionest précise. Si vous devez rediriger xcrun, utilisez le menu local Outils de ligne de commande dans le volet de préférences Emplacements de Xcode.
Vous pouvez également utiliser xcode-select -ppour imprimer le chemin d'accès au Xcode que xcrun utilisera et sudo xcode-select -s /path/to/Xcode.apppour le modifier.
Jack Lawrence
4
Je viens de commencer à apprendre le développement ios et je suis surpris que xcode ne vous permette pas de choisir la version de swift ni même de vous faire connaître la version de l'interface graphique.
Alex
@RadekWilczak Je ne sais pas ce que vous entendez par "devrait être". Je viens de copier la commande publiée et de la coller dans Terminal et d'appuyer sur Retour, et cela fonctionne. Il y a donc peut-être une autre alternative, mais ce que j'ai dit n'est pas faux.
mat
1
Cela m'a donné la mauvaise réponse. Parce que swift est configuré par cible. Voir la réponse ci-dessous de @Krunal pour la meilleure réponse.
Andrew Paul Simmons
Je suis d'accord avec tous les "la bonne façon est de définir la SWIFT_VERSION" par projet. Cependant, dans les versions antérieures de Xcode comme 8.2, il n'indique pas clairement dans l'interface utilisateur quelle version de XCode est prise en charge dans le projet, et a simplement "Utiliser la version du langage Swift hérité" dans l'interface utilisateur avec Oui, Non, non spécifié. L'approche en ligne de commande est extrêmement utile pour pouvoir interroger rapidement la réponse à la version max swift disponible.
Ce n'est pas nécessairement la version de swift que Xcode voit. En outre, vous pouvez avoir rapidement sans avoir Xcode.
asiby
64
À partir de Xcode 8.3, la Build Settingsclé a Swift Language Versionune valeur de version rapide que votre cible utilise.
Pour les anciens Xcodes, utilisez cette solution, ouvrez le terminal et saisissez les commandes suivantes
Cas 1: vous n'avez installé qu'une seule application Xcode
swift -version
Cas 2: vous avez installé plusieurs applications Xcode
Commutateur active developer directory(remplacez la Xcode_7.3.appcommande suivante par le nom de votre fichier d'application Xcode du répertoire d' application pour lequel vous souhaitez vérifier la version rapide)
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 swift par défaut. Pour une utilisation rapide 2.3, il suffit d' allumer le drapeau Use Legacy Swift Language Versionà YESpartir Build Settinget XCode utilisera Swift 2.3 pour cet objectif du projet.
Swift Language Versionn'apparaît pas comme paramètre dans mon projet Xcode 8.2.1. C'est vrai Use Legacy Swift Language Version.
Chris Prince
1
@ChrisPrince Oui, Swift Language Versionn'existait pas ici Build Settingsjusqu'à Xcode 8.3 .... dans les versions précédentes de Xcode 8.x Use Legacy Swift Language Version, No= Swift 3 et Yes= Swift 2.3
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 de langue Swift héritée» sur OUI.
Je ne trouve pas cela en recherchant «Utiliser la version linguistique de Legacy Swift» ou «Legacy»
JerryZhou
J'utilise la dernière version Xcode 8.3.2 (8E2002) et swift 3 dans Swift Language Version. Maintenant, je veux changer cela en swift 2.3 mais il n'y a qu'une seule option swift 3.0 et 2nd n'est pas spécifié. Alors, pourriez-vous expliquer comment cela serait possible? obtenir rapidement 2.3 dans mon projet actuel? @alexisSchreier
Arsal
15
Pour voir la version par défaut de swift installée sur votre ordinateur, puis à partir de la ligne de commande, tapez ce qui suit:
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 très probablement de la version incluse dans la version App Store de Xcode que vous avez installée (sauf si vous l'avez modifiée).
Si vous voulez déterminer la version réelle de Swift utilisée par une version particulière de Xcode (une bêta, par exemple), puis à partir de la ligne de commande, appelez le binaire swift dans le bundle Xcode et passez-lui le paramètre --version
Contribution bonus: j'utilise un script node.js personnalisé pour extraire une chaîne propre à utiliser avec la documentation Jazzy. Vous pourriez vous en servir si vous pouvez trouver un endroit pour l'intégrer dans votre processus de développement:
Appelé à 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 également utiliser l'expression régulière bien sûr, mais faites ce que vous voulez:]
En entrant simplement la commande swift dans le terminal, il affichera la version, tout en se connectant à la console Swift. (Quelque chose comme ci-dessous)
System-IOSs-MacBook-Air:~ system$ swift
Welcome to AppleSwift version 5.1(swiftlang-1100.0.270.13 clang-1100.0.33.7).Type:help for assistance.
eh bien je vais jeter le répertoire principal du projet et lorsque vous tapez "langue rapide", il ne montre que la version rapide en haut dans les paramètres de construction rien d'autre que cela ..
Réponses:
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 montrera toutes les versions de langue Swift disponibles (prises en charge) pour votre Xcode et la version active également par une coche.
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.
Voici le résultat en utilisant Playground (avec Xcode 11.x )
la source
Ce que je fais, c'est dire dans le terminal:
La sortie pour Xcode 6.3.2 est:
Bien sûr, cela suppose que votre
xcrun
pointe correctement votre copie de Xcode. Si, comme moi, vous jonglez avec plusieurs versions de Xcode, cela peut vous inquiéter! Pour vous en assurer, diteset regardez le chemin vers Xcode qu'il vous montre. Par exemple:
Si c'est votre Xcode, la sortie de
-version
est précise. Si vous devez redirigerxcrun
, utilisez le menu local Outils de ligne de commande dans le volet de préférences Emplacements de Xcode.la source
xcode-select -p
pour imprimer le chemin d'accès au Xcode que xcrun utilisera etsudo xcode-select -s /path/to/Xcode.app
pour le modifier.Ouvrez le terminal et écrivez:
la source
À partir de Xcode 8.3, la
Build Settings
clé aSwift Language Version
une valeur de version rapide que votre cible utilise.Pour les anciens Xcodes, utilisez cette solution, ouvrez le terminal et saisissez les commandes suivantes
Cas 1: vous n'avez installé qu'une seule application Xcode
Cas 2: vous avez installé plusieurs applications Xcode
Commutateur
active developer directory
(remplacez laXcode_7.3.app
commande suivante par le nom de votre fichier d'application Xcode du répertoire d' application pour lequel vous souhaitez vérifier la version rapide)alors
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 swift par défaut. Pour une utilisation rapide 2.3, il suffit d' allumer le drapeau
Use Legacy Swift Language Version
àYES
partirBuild Setting
et XCode utilisera Swift 2.3 pour cet objectif du projet.la source
Vous pouvez voir et sélectionner la version de Swift que Xcode utilise dans:
Cible -> Paramètres de construction -> Version en langue Swift :
Ceci est disponible dans Xcode 8.3 et Xcode 9 (je n'ai pas vérifié les anciennes versions)
la source
Swift Language Version
n'apparaît pas comme paramètre dans mon projet Xcode 8.2.1. C'est vraiUse Legacy Swift Language Version
.Swift Language Version
n'existait pas iciBuild Settings
jusqu'à Xcode 8.3 .... dans les versions précédentes de Xcode 8.xUse Legacy Swift Language Version
,No
= Swift 3 etYes
= Swift 2.3Ce message reddit m'a aidé: https://www.reddit.com/r/swift/comments/4o8atc/xcode_8_which_swift/d4anpet
Bon vieux reddit :)
la source
Pour voir la version par défaut de swift installée sur votre ordinateur, puis à partir de la ligne de commande, tapez ce qui suit:
Il s'agit très probablement de la version incluse dans la version App Store de Xcode que vous avez installée (sauf si vous l'avez modifiée).
Si vous voulez déterminer la version réelle de Swift utilisée par une version particulière de Xcode (une bêta, par exemple), puis à partir de la ligne de commande, appelez le binaire swift dans le bundle Xcode et passez-lui le paramètre --version
la source
et version rapide <--> version Xcode
la source
J'utilise Swift de Google Colab. Voici comment le vérifier dans Colab.
Le résultat est
5.0-dev
la source
Dans le cas où quelqu'un chercherait un mappage rapide de la version Swift basée sur la version Xcode:
Obtenu en exécutant la commande suivante comme mentionné sur différentes versions de Xcode:
la source
Contribution bonus: j'utilise un script node.js personnalisé pour extraire une chaîne propre à utiliser avec la documentation Jazzy. Vous pourriez vous en servir si vous pouvez trouver un endroit pour l'intégrer dans votre processus de développement:
Appelé à partir d'un script Bash:
SwiftVerSlicer.js:
Vous pouvez également utiliser l'expression régulière bien sûr, mais faites ce que vous voulez:]
la source
En entrant simplement la commande swift dans le terminal, il affichera la version, tout en se connectant à la console Swift. (Quelque chose comme ci-dessous)
la source
https://i.stack.imgur.com/Ojn3m.png
la source
Vous obtiendrez cela dans le cadre du projet
la source