如何查看我使用的是哪个版本的Swift?

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

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

262469 次浏览

我所做的是在终端上说:

$ 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位置首选项窗格中的命令行工具弹出菜单。

打开终端并写入:

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从 使用您想要的申请方式目录中的Xcode应用程序文件名执行以下命令 查看Swift版本)

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

     swift -version
    

NOTE: From Xcode 8 to Xcode 8.2.x you can use swift 2.3 even though Xcode 8 uses swift 3.x as default swift version. To use swift 2.3, just turn on flag Use Legacy Swift Language Version to YES from Build Setting and XCode will use Swift 2.3 for that project target.

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

Xcode 8默认使用Swift 3.0。但你可以打开Swift 2.3。转到项目的构建设置并将“使用传统Swift语言版本”设置为“是”。

好老reddit:)

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

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

在此处输入图片描述

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

项目构建设置有一个块“Swift编译器-语言”,它以键值格式存储有关Swift语言版本的信息。它将通过勾号显示您的Xcode和活动版本的所有可用(支持)Swift语言版本。

项目►(选择您的项目目标)►构建设置►(键入 搜索栏中的swift_version)Swift编译器语言►Swift Language 版本►单击语言列表以打开它(并且在列表项的任何一个上都会有一个打勾标记,这将是当前的Swift版本)。

看看这个快照,以便轻松理解:

xcode并突出显示所描述的区域


借助以下代码,您可以以编程方式找到项目支持的Swift版本。

#if 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

这是使用Playground的结果(使用xcode 11. x

在此处输入图片描述

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

swift --version

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

目标:x86_64-appe-darwin17.6.0

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

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

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

苹果Swift版本4.2(swilftlang-1000.0.16.7clang-1000.10.25.3)

目标:x86_64-appe-darwin17.6.0

奖励贡献: 我正在使用自定义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

当然,您也可以使用regex,但可以随心所欲:]

我正在使用来自Google Colab的Swift。以下是如何在Colab中检查它。

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

结果是5.0-dev

/usr/bin/swiftc --version

Swift版本<-->Xcode版本

只需在终端中输入swift命令,它将显示版本,同时登录到Swift控制台。(如下所示)

System-IOSs-MacBook-Air swift
Welcome to Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7).
Type :help for assistance.
  1. 选择您的项目
  2. 构建设置
  3. 搜索“Swift语言”
  4. 现在您可以看到您在项目中使用的是哪个Swift版本

https://i.stack.imgur.com/Ojn3m.png

你会在项目设置下得到这个

在此处输入图片描述

如果有人正在寻找基于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

更新了如何找到您的项目正在使用哪个版本的Swift的答案,只需单击Xcode 12即可帮助像我这样的新手。

  1. 单击您的项目(左侧窗格中的顶级蓝色图标)
  2. 单击构建设置(项目>标题中的第5项)
  3. 向下滚动到Swift编译器-语言,然后查看下拉列表。

输入图片描述

hi frind代码类型在终端 Swift-v

欢迎使用Apple Swift版本5.2.4(Swiftlang-1103.0.32.9clang-1103.0.32.53)。

如果您想检查特定版本的swft的运行代码,您可以使用

#if compiler(>=5.1) //4.2, 3.0, 2.0 replace whatever swft version you wants to check
#endif

您可以在终端上运行命令

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