我刚在Xcode中创建了一个新的Swift项目。我想知道它使用的是哪个版本的Swift。
在Xcode或终端中,如何查看我正在项目内使用的Swift版本?
我所做的是在终端中输入:
$ xcrun swift -version
Xcode 6.3.2的输出结果为:
Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)
当然,这假设你的xcrun
正确地指向了你的Xcode副本。如果像我一样,你正在使用几个不同版本的Xcode,那可能会让人担心!为了确保这一点,可以执行以下操作:
xcode-select --print-path
$ xcrun --find swift
查看它显示的Xcode路径。例如:
/Applications/Xcode.app/...
如果这是你的Xcode,那么-version
输出的结果是准确的。如果你需要重新指定xcrun
,请使用Xcode的Locations首选项面板中的Command Line Tools弹出菜单。
xcode-select -p
命令打印 xcrun 将使用的 Xcode 路径,以及使用 sudo xcode-select -s /path/to/Xcode.app
命令更改它。 - Jack Lawrence项目 ►(选择您的项目目标)► 构建设置 ►(在搜索栏中键入'swift_version')Swift Compiler Language ► Swift Language Version ► 点击语言列表以打开它(其中一个列表项上将有一个勾号,表示当前的Swift版本)。
请查看此快照,以便更容易理解:
#if swift(>=5.9)
print("Hello, Swift 5.9")
#elseif swift(>=5.8)
print("Hello, Swift 5.8")
#elseif swift(>=5.7)
print("Hello, Swift 5.7")
#elseif swift(>=5.6)
print("Hello, Swift 5.6")
#elseif swift(>=5.5)
print("Hello, Swift 5.5")
#elseif swift(>=5.4)
print("Hello, Swift 5.4")
#elseif swift(>=5.3)
print("Hello, Swift 5.3")
#elseif 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
打开终端并输入:
swift -version
从 Xcode 8.3 开始,Build Settings
中有一个名为 Swift Language Version
的键,其值表示目标使用的 Swift 版本。
对于旧版 Xcode,请使用以下解决方案,打开终端并输入以下命令:
情况 1:您只安装了一个 Xcode 应用程序
swift -version
情况2:您安装了多个Xcode应用程序
切换active developer directory
(将以下命令中的 Xcode_7.3.app
替换为您从应用程序目录中想要检查 Swift 版本的 Xcode 应用程序的文件名)
sudo xcode-select --switch /Applications/Xcode_7.3.app/Contents/Developer
然后
swift -version
注意: 从Xcode 8到Xcode 8.2.x,您可以使用Swift 2.3,即使Xcode 8默认使用Swift 3.x。要使用Swift 2.3,只需在“Build Setting”中将标志Use Legacy Swift Language Version
打开为YES
,XCode将为该项目目标使用Swift 2.3。
Build Settings
中不存在Swift Language Version
。在之前的Xcode 8.x版本中,Use Legacy Swift Language Version
,No
= Swift 3,Yes
= Swift 2.3。 - William GP如果您想查看安装在计算机上的 Swift 默认版本,请从命令行输入以下内容:
swift --version
Apple Swift 版本 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2)
目标:x86_64-apple-darwin17.6.0
这很可能是您安装的 Xcode 应用商店版本中包含的版本(除非您已更改它)。
如果您想确定特定版本的 Xcode 使用的实际 Swift 版本(例如测试版),那么可以从命令行中调用 Xcode 包中的 swift 二进制文件,并传递参数 --version。
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift --version
苹果Swift 4.2版本(swiftlang-1000.0.16.7 clang-1000.10.25.3)
目标: x86_64-apple-darwin17.6.0
如果有人想要快速了解基于Xcode版本的Swift版本的一对一映射:
Xcode 13.4.1 : Swift version 5.6.1
Xcode 13.2 : Swift version 5.5.2
Xcode 12.5 : Swift version 5.4.2
Xcode 12.3 : Swift version 5.3.2
Xcode 12.2 : Swift version 5.3.1
Xcode 11.6 : Swift version 5.2.4
Xcode 11.5 : Swift version 5.2.4
Xcode 11.4 : Swift version 5.2
Xcode 11.3 : Swift version 5.1.3
Xcode 11.2.1 : Swift version 5.1.2
Xcode 11.1 : Swift version 5.1
根据不同版本的Xcode,通过运行以下命令获取:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift --version
这篇Reddit帖子对我很有帮助:https://www.reddit.com/r/swift/comments/4o8atc/xcode_8_which_swift/d4anpet
Xcode 8默认使用Swift 3.0。但你可以启用Swift 2.3. 前往项目的“Build Settings”并将“Use Legacy Swift Language Version”设置为YES。
好老的Reddit :)
你可以在终端上运行命令。
xcrun swift -version
或者
您可以参考下表来查看哪个Xcode使用了哪个版本的Swift语言。
Xcode 13.4.1 : Swift version 5.6.1
Xcode 13.3 : Swift version 5.6
Xcode 13.2 : Swift version 5.5.2
Xcode 12.5 : Swift version 5.4.2
Xcode 12.3 : Swift version 5.3.2
Xcode 12.2 : Swift version 5.3.1
Xcode 11.6 : Swift version 5.2.4
Xcode 11.5 : Swift version 5.2.4
Xcode 11.4 : Swift version 5.2
Xcode 11.3 : Swift version 5.1.3
Xcode 11.2.1 : Swift version 5.1.2
Xcode 11.1 : Swift version 5.1