我刚刚在Xcode中创建了一个新的Swift项目 . 我想知道它正在使用哪个版本的Swift .
我如何在Xcode或终端中看到我在项目中使用的Swift版本?
这篇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 :)
我在终端说的是:
$ 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
$ xcrun --find swift
并查看它向您显示的Xcode路径 . 例如:
/Applications/Xcode.app/...
如果这是你的Xcode,那么 -version 的输出是准确的 . 如果需要重新指定 xcrun ,请使用Xcode的“位置”首选项窗格中的“命令行工具”弹出菜单 .
-version
您可以查看并选择Xcode正在使用的Swift版本:
Target - > Build Settings - > Swift Language Version :
这在Xcode 8.3和Xcode 9中可用(未检查旧版本)
Open the Terminal and write:
swift -version
从Xcode 8.3开始 Build Settings 具有键 Swift Language Version ,其值为目标正在使用的swift版本 .
Build Settings
Swift Language Version
对于较旧的Xcodes使用此解决方案,打开终端并键入以下命令
Case 1: You have installed only one Xcode App
Case 2: You have installed multiple Xcode Apps
active developer directory
Xcode_7.3.app
sudo xcode-select --switch /Applications/Xcode_7.3.app/Contents/Developer
NOTE: 从Xcode 8到Xcode 8.2.x你可以使用swift 2.3,即使Xcode 8使用swift 3.x作为默认的swift版本 . 要使用swift 2.3,只需将 Use Legacy Swift Language Version 标志从 Build Setting 打开 YES ,XCode将使用Swift 2.3作为该项目目标 .
Use Legacy Swift Language Version
Build Setting
YES
项目构建设置有一个块“Swift编译器 - 语言”,它以键值格式存储有关Swift语言版本的信息 . 它将通过刻度标记为您的Xcode和活动版本显示所有可用(支持)的Swift语言版本 .
项目►(选择您的项目目标)►构建设置►(在搜索栏中输入'swift_version')Swift编译器语言►Swift语言版►单击语言列表将其打开(并且任何一个上都会有一个刻度线list-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
这是使用游乐场的结果(使用Xcode 10.x)
要查看计算机上安装的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(例如beta版)使用的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-darwin17.6.0
7 回答
这篇reddit帖子帮助了我:https://www.reddit.com/r/swift/comments/4o8atc/xcode_8_which_swift/d4anpet
好老reddit :)
我在终端说的是:
Xcode 6.3.2的输出是:
当然,假设您的
xcrun
正确指向您的Xcode副本 . 如果像我一样,你正在处理几个版本的Xcode,那可能会让人担心!比方说,确保它是并查看它向您显示的Xcode路径 . 例如:
如果这是你的Xcode,那么
-version
的输出是准确的 . 如果需要重新指定xcrun
,请使用Xcode的“位置”首选项窗格中的“命令行工具”弹出菜单 .您可以查看并选择Xcode正在使用的Swift版本:
Target - > Build Settings - > Swift Language Version :
这在Xcode 8.3和Xcode 9中可用(未检查旧版本)
Open the Terminal and write:
从Xcode 8.3开始
Build Settings
具有键Swift Language Version
,其值为目标正在使用的swift版本 .对于较旧的Xcodes使用此解决方案,打开终端并键入以下命令
Case 1: You have installed only one Xcode App
Case 2: You have installed multiple Xcode Apps
active developer directory
(将以下命令中的Xcode_7.3.app
替换为您要检查swift版本的应用程序目录中的Xcode应用程序文件名)NOTE: 从Xcode 8到Xcode 8.2.x你可以使用swift 2.3,即使Xcode 8使用swift 3.x作为默认的swift版本 . 要使用swift 2.3,只需将
Use Legacy Swift Language Version
标志从Build Setting
打开YES
,XCode将使用Swift 2.3作为该项目目标 .项目构建设置有一个块“Swift编译器 - 语言”,它以键值格式存储有关Swift语言版本的信息 . 它将通过刻度标记为您的Xcode和活动版本显示所有可用(支持)的Swift语言版本 .
查看此快照,以便于理解:
借助以下代码,您可以通过编程方式找到项目支持的Swift版本 .
这是使用游乐场的结果(使用Xcode 10.x)
要查看计算机上安装的swift的默认版本,请从命令行键入以下内容:
这很可能是您安装的Xcode应用程序商店版本中包含的版本(除非您已更改) .
如果你想确定特定版本的Xcode(例如beta版)使用的Swift的实际版本,那么从命令行调用Xcode包中的swift二进制文件并将参数传递给--version