language - 如何查看我正在使用哪個版本的Swift?




xcode change swift version (8)

我剛剛在Xcode中創建了一個新的Swift項目。 我想知道它正在使用哪個版本的Swift。

如何在Xcode或終端中查看我在項目中使用的Swift的哪個版本?


只需在終端中輸入swift命令,它將顯示版本,同時登錄到Swift控制台。(如下所示)

 System-IOSs-MacBook-Air:~ system$ swift Welcome to Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7). Type :help for assistance. 

從Xcode 8.3開始,“ Build Settings 具有關鍵的“ Swift Language Version 和目標所使用的swift版本值。

對於較舊的Xcode,請使用此解決方案,打開終端並鍵入以下命令

情況1:您僅安裝了一個Xcode應用程序

swift -version

情況2:您已經安裝了多個Xcode應用程序

  • 切換 active developer directory (用您要檢查快速版本的 應用程序 目錄中的Xcode應用程序文件名替換以下命令中的 Xcode_7.3.app

     sudo xcode-select --switch /Applications/Xcode_7.3.app/Contents/Developer
  • 然後

     swift -version

注意: 從Xcode 8到Xcode 8.2.x,即使Xcode 8使用swift 3.x作為默認的swift版本,您也可以使用swift 2.3。 要使用swift 2.3,只需將 Build Setting Use Legacy Swift Language Version 標記 Build SettingYES ,XCode將對該項目目標使用Swift 2.3。


我在終端中說的是:

$ 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的“位置”首選項窗格中的“命令行工具”彈出菜單。


我正在使用Google Colab的Swift。 這是在Colab中檢查它的方法。

!/swift/toolchain/usr/bin/swift --version

結果是 5.0-dev



項目構建設置有一個塊“ Swift Compiler-Languages”,該塊以鍵值格式存儲有關Swift語言版本的信息。 它將用勾號顯示Xcode和活動版本的所有可用(受支持的)Swift語言版本。

項目►(選擇項目目標)►構建設置►(在搜索欄中鍵入'swift_version')Swift編譯器語言►Swift語言版本►單擊“語言”列表將其打開(列表中的任何一個都會出現一個勾號) -item,它將是當前的快速版本)。

查看此快照,以方便理解:

借助以下代碼,您可以以編程方式找到您的項目支持的Swift版本。

#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

這是使用Playground(使用 Xcode 11.x )的結果


打開終端並輸入:

swift -version





terminal