我怎么看我正在使用哪个版本的Swift?

Dav*_*bel 515 terminal xcode swift

我刚刚在Xcode中创建了一个新的Swift项目.我想知道它正在使用哪个版本的Swift.

如何在Xcode或终端中看到我在项目中使用的Swift版本?

mat*_*att 484

我在终端说的是:

$ xcrun swift -version
Run Code Online (Sandbox Code Playgroud)

Xcode 6.3.2的输出是:

Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)
Run Code Online (Sandbox Code Playgroud)

当然,假设您xcrun正确指向Xcode的副本.如果像我一样,你正在处理几个版本的Xcode,那可能会让人担心!比如,确保它是

$ xcrun --find swift
Run Code Online (Sandbox Code Playgroud)

并查看它向您显示的Xcode路径.例如:

/Applications/Xcode.app/...
Run Code Online (Sandbox Code Playgroud)

如果这是你的Xcode,那么输出-version是准确的.如果需要重新指定xcrun,请使用Xcode的"位置"首选项窗格中的"命令行工具"弹出菜单.

  • 您还可以使用`xcode-select -p`打印xcrun将使用的Xcode的路径,并使用`sudo xcode-select -s/path/to/Xcode.app`来更改它. (8认同)
  • 我刚刚开始学习ios开发,我很惊讶xcode不允许你选择swift的版本,甚至不让你知道GUI的版本. (4认同)

Kru*_*nal 343

项目构建设置有一个块"Swift编译器 - 语言",它以键值格式存储有关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
Run Code Online (Sandbox Code Playgroud)

这是使用Playground的结果(使用Xcode 10.x)

在此输入图像描述

  • 这是正确答案,因为swift版本是基于每个目标配置的. (15认同)
  • 我认为这是正确的答案.比呼叫终端更容易.(特别是如果您安装了不同版本的Xcode) (9认同)
  • 你可以在最新版本的xcode上看到这个属性 (5认同)
  • 我在使用Xcode 8.1的项目中没有看到这个提议 (2认同)

Alz*_*yed 100

打开终端并写:

swift -version
Run Code Online (Sandbox Code Playgroud)

  • 这不一定是Xcode看到的swift版本.此外,你可以快速拥有Xcode. (10认同)

Adi*_*ane 63

从Xcode 8.3开始Build Settings,键Swift Language Version具有目标所使用的swift版本的值.

对于较旧的Xcodes使用此解决方案,打开终端并键入以下命令

案例1:您只安装了一个Xcode应用程序

swift -version
Run Code Online (Sandbox Code Playgroud)

案例2:您安装了多个Xcode应用程序

注意:从Xcode 8到Xcode 8.2.x,您可以使用swift 2.3,即使Xcode 8使用swift 3.x作为默认的swift版本.要使用swift 2.3,只需打开flag Use Legacy Swift Language Versionto YESfrom Build Setting,XCode将使用Swift 2.3作为该项目目标.


joe*_*ern 20

您可以查看并选择Xcode正在使用的Swift版本:

目标 - > 构建设置 - > Swift语言版本:

在此输入图像描述

这在Xcode 8.3和Xcode 9中可用(未检查旧版本)

  • "Swift语言版本"并未作为我的Xcode 8.2.1项目中的设置.它确实有"使用Legacy Swift语言版本". (2认同)

ale*_*ier 18

这篇reddit帖子帮助了我:https: //www.reddit.com/r/swift/comments/4o8atc/xcode_8_which_swift/d4anpet

Xcode 8默认使用Swift 3.0.但你可以打开Swift 2.3.转到项目的构建设置并将"使用Legacy Swift语言版本"设置为YES.

好老reddit :)


Pau*_*ing 11

要查看计算机上安装的swift的默认版本,请从命令行键入以下内容:

swift --version
Run Code Online (Sandbox Code Playgroud)

Apple Swift版本4.1.2(swiftlang-902.0.54 clang-902.0.39.2)

目标:x86_64-apple-darwin17.6.0

这很可能是您安装的Xcode应用程序商店版本中包含的版本(除非您已更改).

如果你想确定特定版本的Xcode(例如beta)使用的Swift的实际版本,那么从命令行调用Xcode包中的swift二进制文件并将参数传递给--version

/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift --version
Run Code Online (Sandbox Code Playgroud)

Apple Swift版本4.2(swiftlang-1000.0.16.7 clang-1000.10.25.3)

目标:x86_64-apple-darwin17.6.0


Alp*_*ana 11

如果有人正在寻找基于 Xcode 版本的 Swift 版本的快速一对一映射:

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
Run Code Online (Sandbox Code Playgroud)

通过运行以下命令获得,如不同 Xcode 版本所述:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift --version
Run Code Online (Sandbox Code Playgroud)


Ruc*_*mal 8

您可以在终端上运行命令

xcrun swift -version
Run Code Online (Sandbox Code Playgroud)

或者

您可以参考下表来检查哪个 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
Run Code Online (Sandbox Code Playgroud)