Xcode内に新しいSwiftプロジェクトを作成しました。 Swiftのどのバージョンが使用されているのでしょうか。
Xcodeまたはターミナルで、プロジェクト内でどのバージョンのSwiftを使用しているのかを確認するにはどうすればよいですか。
プロジェクトビルド設定にはブロック 'Swift Compiler - Languages'があり、ここにSwift Language Versionに関する情報がキー値形式で格納されています。それはあなたのXcodeのために利用可能な(サポートされている)Swift言語バージョンとアクティブバージョンもまた目盛りで示します。
プロジェクト►(プロジェクトのターゲットを選択)►ビルド設定►(検索バーに 'Swift_version'と入力してください)Swift Compiler Language►Swift Language Version►それを開くにはLanguageリストをクリックしてください。 -item、それは現在のSwiftバージョンになります)。
わかりやすいように、このスナップショットを見てください。
以下のコードの助けを借りて、プログラム的にあなたのプロジェクトでサポートされているSwiftのバージョンを見つけることができます。
#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
これはPlaygroundを使った結果です( Xcode 10.x を含む)
私がしていることはターミナルで言うことです:
$ xcrun Swift -version
Xcode 6.3.2の出力は次のとおりです。
Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)
もちろん、これはあなたのxcrun
があなたのXcodeのコピーを正しく指していると仮定しています。私と同じように、Xcodeのいくつかのバージョンを組み合わせているのであれば、それは心配になることがあります。そうであることを確認するために、言う
$ xcrun --find Swift
そしてXcodeへのパスを見てください。例えば:
/Applications/Xcode.app/...
それがあなたのXcodeなら、-version
からの出力は正確です。 xcrun
をポイントし直す必要がある場合は、XcodeのLocations環境設定パネルにあるCommand Line Toolsポップアップメニューを使用してください。
ターミナルを開いて次のように書きます。
Swift -version
Xcode 8.3以降、Build Settings
にはターゲットが使用しているSwiftバージョンの値を持つキーSwift Language Version
があります。
古いXcodeの場合は、この解決策を使用し、端末を開いて以下のコマンドを入力してください。
ケース1:Xcode Appを1つだけインストールしました
Swift -version
ケース2:あなたは複数のXcodeアプリをインストールしました
active developer directory
を切り替えます(次のコマンドのXcode_7.3.app
を、Swiftのバージョンを確認する Application ディレクトリのXcodeアプリファイル名に置き換えます)。
Sudo xcode-select --switch /Applications/Xcode_7.3.app/Contents/Developer
それから
Swift -version
注: Xcode 8からXcode 8.2.xまでは、デフォルトのSwiftバージョンとしてXcode 8がSwift 3.xを使用していても、Swift 2.3を使用できます。 Swift 2.3を使用するには、Use Legacy Swift Language Version
からBuild Setting
をYES
にフラグをオンにするだけで、XCodeはそのプロジェクトターゲットにSwift 2.3を使用します。
このreddit投稿は私を助けてくれました: https://www.reddit.com/r/Swift/comments/4o8atc/xcode_8_which_Swift/d4anpet
Xcode 8はデフォルトでSwift 3.0を使います。しかし、あなたはSwift 2.3をオンにすることができます。プロジェクトのビルド設定に移動し、「Use Legacy Swift Language Version」をYESに設定します。
古き良きreddit :)
お使いのマシンにインストールされているSwiftのデフォルトバージョンを確認するには、コマンドラインから次のように入力します。
Swift --version
Apple Swiftバージョン4.1.2(swiftlang-902.0.54 clang-902.0.39.2)
ターゲット:x86_64-Apple-darwin 17.6.0
これはおそらく、あなたがインストールしたXcodeのApp Storeバージョンに含まれているバージョンです(あなたがそれを変更していない限り)。
特定のバージョンのXcode(たとえばベータ版)で使用されているSwiftの実際のバージョンを確認したい場合は、コマンドラインからXcodeバンドル内のSwiftバイナリを呼び出して--versionパラメータを渡します
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/Swift --version
Apple Swiftバージョン4.2(swiftlang-1000.0.16.7 clang-1000.10.25.3)
ターゲット:x86_64-Apple-darwin 17.6.0
/usr/bin/swiftc --version
Google ColabのSwiftを使用しています。これはColabでそれをチェックする方法です。
!/Swift/toolchain/usr/bin/Swift --version
結果は5.0-dev
です
おまけの貢献:私はカスタムのnode.jsスクリプトを使ってJazzyドキュメントで使うためのきれいな文字列を抽出しています。あなたがあなたの開発プロセスにそれを働かせる場所を見つけることができるなら、あなたはこれのいくらかの使用を得るかもしれません:
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
もちろん正規表現を使うこともできますが、好きなことをしてください。