ターミナルでSwiftを使用するにはどうすればよいですか?


108

Xcode 6の新機能」を読みました。この記事では、Xcode 6に関するいくつかの新機能を紹介します。

コマンドライン

Xcodeのデバッガーには、REPL(Read-Eval-Print-Loop)と呼ばれるインタラクティブバージョンのSwift言語が含まれています。Swift構文を使用して、実行中のアプリを評価および操作したり、スクリプトのような環境で新しいコードを記述したりします。REPLは、XcodeのコンソールのLLDB内から、またはターミナルから利用できます。

REPLの入手方法を知りたいですか?


3
これについて、私が書いた記事があります。medium.com/swift-programming/...
Santosh

回答:


135
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

その後、次のいずれかを実行できます。

xcrun swift 
lldb --repl

Xcode 6.1以降- swift端末に入力すると、REPLも起動します。


2
...そして終了するには、Ctrl+と入力しdます。
arve0

57

または、現在の開発環境を台無しにしたくない場合は、次のコマンドを実行します。

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift

30
それとも、あなたはさらに、この一歩を取ると、あなたにこれを追加することができます~/.bash_profilealias swift="/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift"
デヴィッド・ベック

6
:あなたは同様にそれへのパスを指定する必要がありますOS X SDKを使用できるようにするには/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -sdk /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk
ライナスUnnebäck

デビッドのアイデアをありがとう。私はそれをプロファイルに追加しましたが、その場所にあり、権限はであるにもかかわらず、そのようなファイルまたはディレクトリはありません-rwxr-xr-x@ 1 mark2 admin 33557440 31 May 14:43 swift。私はユニットにはそれほど強くありません。誰が何が悪いのか見ることができますか?
MarkAurelius 14年

xcrun --find swiftパスを取得するために使用することは、はるかに将来の証明になるでしょう
Mike Weller

1
xcrun --toolchain com.apple.dt.toolchain.Swift_2_3 swiftはるかに良いです。ここでの元の答え:stackoverflow.com/a/36254848/5768974
Puttin

42

手順1:ターミナルを開く
手順2:「swift」と入力します
手順3:手順3はありません

例:

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$ 

は引き続き使用できますがxcrun swift、Swift 2.1以降でswiftは、コマンドラインから簡単に実行できます。
timbo、2015

私の例は、2014年7月のSwift 1.0からの例です。これは、xcrunを使用せずに動作していました。
MacMark、2015

15

ターミナルからSwiftを実行するのと同じ方法で、スクリプトを実行することもできます。次のシバンを使用して、スクリプトを実行してください。(クリス・ラトナーによると、スウィフトの作成者)

#!/usr/bin/env xcrun swift -i

6
XCode 6 Beta 5に従って、-iフラグは削除され、エラーが発生します。そのままにして、#!/usr/bin/env xcrun swift代わりに使用してください。
Jeehut 2014

Xcode 8のSwift 2.3で遊びたい人は、stackoverflow.com
a /

15

コマンドラインツールがインストールされているXcode 6.1.1では/usr/bin/swift、次の方法を直接参照してスクリプトを実行できます。

#!/usr/bin/swift

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

これがswift 2.1.1(xcode 7.2インストール)で動作することを確認します
thibaut noah

1
Xcode 8のSwift 2.3で遊びたい人は、stackoverflow.com
a /

10

単純なSwiftスクリプトシバンを気にする人がいる場合:

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

特定のターゲットバージョンが必要な場合

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

特定のツールチェーンが必要な場合(Swift 2.3を使用したいがXcode 8を使用している場合など)

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

Xcode 7.3.1でSwift 2.2を使用する場合は、Xcode 7.3.1が次の場所にあると仮定します /Applications/Xcode7.app

sudo xcode-select -s /Applications/Xcode7.app/
xcrun --sdk macosx swift

これで、デフォルトのアクティブな開発者ディレクトリが変更されたので、次を使用して確認できます。

xcode-select -p

Swift.orgが提供するスナップショットを使用したい場合は、ここのインストールをお見逃しなく。


Xcode iOSプロジェクトからSwiftスクリプト実行するビルドフェーズで最初に私が答えたとおり


8

** xcode6ベータ4以降の更新**

これは、xcode設定でも行うことができます。xcode->設定->場所に移動するだけです。

コマンドラインツールの場合は、ドロップダウンリストのオプションから目的のバージョンを選択するだけです。下の図を参照してください。(swiftでは、パスがxcode6のパスである必要があります)。

コマンドラインツール画面

以前の回答も下に残しておきます。


Kaanが言ったことと、Appleスクリプトを使用して簡単なアプリケーションを作成し、それを使用して前後に切り替えることができます。

アップルスクリプトを開く>以下のコードを貼り付けてアプリケーションとしてエクスポートし、ワンクリックでデフォルトパスまたはベータパスに切り替えることができます(迅速に使用するため)

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

次に実行> xcrun swift

免責事項

  1. スクリプトは、xcode6-betaとxcode5の両方がインストールされていることを前提としています。
  2. xcode6beta のみを試す新しい開発者であれば、スクリプトやパスを手動で設定する必要はありません。xcrun swiftパスが既に設定されているので、実行してください。
  3. xcode6が最終的にリリースされたら、この単純なアプリからパスをデフォルトにリセットし、二度と使用しないようにする必要があります。

XCode 5をインストールし、XCode 6に「更新」(=置き換え)しました。5.xに戻す方法はありますか?このソリューションでは?
Matthias Max

5.xを復活させるとはどういう意味ですか?xcode6 GMまたはappstoreリリースがxcode5に置き換わります。
nsuinteger 2014

6

公式のXcode 6.1リリースをインストールした後、swift次の場所にコマンドがあります/usr/bin/swiftます。

パスにApple提供のPythonとは異なるPythonがある場合、でswift失敗する可能性があることに注意してくださいImportError: No module named site。その場合は、をexport PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin呼び出す前に確認してくださいswift


5

xcrunコマンドは、DEVELOPER_DIR環境変数を使用して、現在選択されているXcodeインストールをオーバーライドします(xcode-selectで設定)。これを使用して、コマンドラインでswiftを実行し、REPLに入れる単一のコマンドを作成できます。これは次のようになります。

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

そして、あなたはそれを単に「迅速」にエイリアスすることができます:

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

興味深い補足として、-iを追加してbashまたはpythonを使用するのと同じように、同じ種類の呼び出しを使用して迅速なスクリプトを実行できます。

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

println("Hello World!")

もちろん、Xcode 6が正式にリリースされ、デフォルトの開発者ツールに切り替えると、DEVELOPER_DIR = ..ビットを削除して「xcrun swift」を使用できます。


4

xcode 6.0をインストールしてください。ただし6.1はインストールしないでください。

エラーが発生した場合:

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

とにかく走れ

xcrun --sdk iphonesimulator8.0 swift

またはできる

export SDKROOT="iphonesimulator8.0" 

その後

xcrun swift

xcodebuild -showsdks」を使用して、使用可能なSDK名を一覧表示します。

xcode 6.1をインストールした場合、

sudo xcode-select -s /Applications/*your-Xcode-6.1-path.app*/Contents/Developer
xcrun swift

2

XCode6の場合、次のコマンドを実行します。

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

$ xcrun swift

エラーが発生した場合:

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

試してください:

xcrun swift -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk

1

ターミナルを開く

ドルsudo xcode-select -switch /Applications/Xcode6-Beta6.app/Contents/Developer

注意:はXcode6-Beta6.appインストールした適切なバージョンに置き換える必要があります

次に、この行alias swift='xcrun swift'~/.bash_profile

そして、

ドルsource ~/.bash_profile

ドルswift

よし!


1

Swift REPL(Read Eval Print Loop)の助けを借りて。

インタプリタ言語に精通している開発者は、このコマンドライン環境で快適に感じるでしょう。経験豊富な開発者でさえ、いくつかのユニークな機能を見つけるでしょう。

Terminal.appを起動し、swiftと入力してEnterキーを押します。その後、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>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.