web-dev-qa-db-fra.com

Comment utiliser Swift dans Terminal?

J'ai lu Quoi de neuf dans Xcode 6 . L'article introduit une nouvelle fonctionnalité à propos de Xcode 6 et dit:

Ligne de commande

Le débogueur de Xcode inclut une version interactive du langage Swift, connue sous le nom de REPL (Read-Eval-Print-Loop). Utilisez la syntaxe Swift pour évaluer et interagir avec votre application en cours d'exécution ou pour écrire un nouveau code dans un environnement de type script. Le REPL est disponible depuis LLDB dans la console Xcode ou depuis Terminal.

Je veux savoir comment obtenir le REPL?

108
riven
Sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

alors vous pouvez faire l'un de ceux-ci:

xcrun Swift 
lldb --repl

A partir de Xcode 6.1 - taper Swift dans le terminal lance le REPL.

135
Kaan Dedeoglu

Sinon, si vous ne voulez pas gâcher votre environnement de développement actuel, vous pouvez simplement exécuter:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/Swift
57
Sebastien Windal

Étape 1: Ouvrez le terminal
Étape 2: Tapez "Swift"
Étape 3: Il n'y a pas d'étape 3

Exemple:

GoldCoast:~ macmark$ Swift
Welcome to Swift!  Type :help for assistance.
  1> println("Hello, world")
Hello, world
  2> var myVariable = 42
myVariable: Int = 42
  3> myVariable = 50
  4> let myConstant = 42
myConstant: Int = 42
  5> println(myVariable)
50
  6> let label = "The width is "
label: String = "The width is "
  7> let width = 94
width: Int = 94
  8> let widthLabel = label + String(width)
widthLabel: String = "The width is 94"
  9> :exit

GoldCoast:~ macmark$ 
41
MacMark

Dans Xcode 6.1.1 avec les outils de ligne de commande installés, vous pouvez exécuter des scripts en vous référant directement à /usr/bin/Swift de la manière suivante:

#!/usr/bin/Swift

let variable: String = "string"
print("Test \(variable)")
15
Markus Rautopuro

De la même manière que si vous exécutiez Swift à partir du terminal, vous pouvez également exécuter des scripts. Utilisez simplement le Shebang suivant et lancez votre script. ( Selon Chris Lattner , créateur de Swift)

#!/usr/bin/env xcrun Swift -i
15
johankj

Si quelqu'un se soucie d'un simple Swift script Shebang:

#!/usr/bin/env xcrun --sdk macosx Swift

Si une version cible spécifique est requise

#!/usr/bin/env xcrun --sdk macosx Swift -target x86_64-macosx10.11

Si une chaîne d’outils spécifique est requise (comme vous voulez utiliser Swift 2.3 mais que vous utilisez Xcode 8)

#!/usr/bin/env xcrun --toolchain com.Apple.dt.toolchain.Swift_2_3 --sdk macosx Swift -target x86_64-macosx10.11

Si vous voulez utiliser Swift 2.2 dans votre Xcode 7.3.1, supposons que Xcode 7.3.1 soit situé à /Applications/Xcode7.app

Sudo xcode-select -s /Applications/Xcode7.app/
xcrun --sdk macosx Swift

à partir de maintenant, le répertoire de développeur actif par défaut a changé, vous pouvez vérifier cela en utilisant:

xcode-select -p

Si vous souhaitez utiliser des instantanés fournis par Swift.org , vous ne devez pas manquer Installation ici .


en tant que première réponse de ma part dans Exécuter Swift le script du projet Xcode iOS en tant que phase de construction

10
Puttin

** mise à jour à partir de xcode6 beta 4 **

cela peut également être fait sur les préférences de xcode. il suffit d'aller sur xcode -> préférences -> emplacements.

pour les outils de ligne de commande, sélectionnez simplement la version de votre choix parmi les options de la liste déroulante, voir image ci-dessous. (Swift exige que le chemin soit le chemin de xcode6).

command line tools screen

Je laisserai ma réponse précédente ci-dessous également.


ce que Kaan a dit et vous pouvez également utiliser un script Apple pour créer une application simple afin de pouvoir l'utiliser en alternance.

ouvrez Apple script> collez le code ci-dessous et exportez-le en tant qu'application afin de pouvoir basculer en un clic sur le chemin par défaut ou bêta (pour utiliser Swift)

set xcode6Path to "xcode-select -switch /Applications/Xcode6-Beta.app/Contents/Developer"
set xcodeDefaultPath to "xcode-select -switch /Applications/Xcode.app/Contents/Developer"

display dialog "set xcode sdk path to " buttons {"xcode 6", "default"} default button 1
copy result as list to {buttonPressed}
if buttonPressed is "default" then
    try
        do Shell script xcodeDefaultPath with administrator privileges
    end try
else
    try
        do Shell script xcode6Path with administrator privileges
    end try
end if

puis exécutez> xcrun Swift

disclaimer

  1. le script suppose que xcode6-beta et xcode5 sont installés.
  2. si vous êtes un nouveau développeur et que vous essayez niquement xcode6beta, vous n'aurez besoin d'aucun script ni d'aucun chemin de configuration manuellement. exécutez simplement xcrun Swift car le chemin est déjà défini pour vous.
  3. lorsque xcode6 sera enfin publié, vous devrez réinitialiser votre chemin d'accès à par défaut à partir de cette application simple et ne plus l'utiliser.
8
nsuinteger

Après avoir installé la version officielle de Xcode 6.1, il existe une commande Swift dans /usr/bin/Swift.

N'oubliez pas que si vous avez un Python différent du Python fourni par Apple dans le chemin, Swift peut échouer avec ImportError: No module named site. Dans ce cas, assurez-vous de bien utiliser export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin avant d'appeler Swift.

6
juandesant

La commande xcrun utilisera la variable d'environnement DEVELOPER_DIR pour remplacer l'installation Xcode actuellement sélectionnée (définie avec xcode-select). Vous pouvez l'utiliser pour construire une seule commande qui exécutera Swift sur la ligne de commande et vous placera dans le REPL. Cela ressemble à ceci:

/usr/bin/env DEVELOPER_DIR=/Applications/Xcode6-Beta.app/Contents/Developer xcrun Swift 

et vous pouvez alias ça juste pour 'Swift':

alias Swift="/usr/bin/env DEVELOPER_DIR=/Applications/Xcode6-Beta.app/Contents/Developer xcrun Swift"

Comme remarque intéressante, vous pouvez utiliser le même type d’invocation pour exécuter un script Swift comme vous utiliseriez bash ou python en ajoutant un -i:

#!/usr/bin/env DEVELOPER_DIR=/Applications/Xcode6-Beta.app/Contents/Developer xcrun Swift -i

println("Hello World!")

Bien sûr, une fois que Xcode 6 est publié officiellement et que vous passez à cela comme outils de développement par défaut, vous pouvez supprimer les bits DEVELOPER_DIR = .. et simplement utiliser "xcrun Swift".

5
Jay Lyerly

assurez-vous d'installer xcode 6., mais pas 6.1

Si vous obtenez une erreur:

<unknown>:0: error: the SDK 'MacOSX10.9.sdk' does not support Swift

juste courir

xcrun --sdk iphonesimulator8.0 Swift

ou tu peux

export SDKROOT="iphonesimulator8.0" 

puis

xcrun Swift

Utilisez "xcodebuild -showsdks" pour répertorier les noms de SDK disponibles.

si vous installez xcode 6.1, juste

Sudo xcode-select -s /Applications/*your-Xcode-6.1-path.app*/Contents/Developer
xcrun Swift
4
liu lei

Pour XCode6, exécutez ces commandes:

$ Sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/

$ xcrun Swift

Si vous obtenez une erreur:

<unknown>:0: error: the SDK 'MacOSX10.9.sdk' does not support Swift

essayer:

xcrun Swift -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk
2
Vinicius Miana

terminal ouvert,

$ Sudo xcode-select -switch /Applications/Xcode6-Beta6.app/Contents/Developer

Remarque: Le Xcode6-Beta6.app doit être remplacé par la version appropriée que vous avez installée.

Puis mettez cette ligne alias Swift='xcrun Swift' en ~/.bash_profile

Et,

$ source ~/.bash_profile

$ Swift

Voilà!

1
Johnny Zhao

À l'aide de Swift REPL (Lire la boucle d'impression d'évaluation).

Les développeurs familiarisés avec les langages interprétés se sentiront à l'aise dans cet environnement de ligne de commande et même les développeurs expérimentés découvriront quelques fonctionnalités uniques.

Lancez Terminal.app et tapez Swift et appuyez sur entrée. Vous serez alors dans le Swift REPL.

        1> print("Hello Swift REPL")
     Hello Swift REPL
        2> 10 + 20
     $R0: Int = 30
        3> var name = "Yogendra Singh"
     name: String = "Yogendra Singh"
        4> print(name)
     Yogendra Singh
        5>
0
Yogendra Singh