查看 Swift 版本
xcrun swift -version
查看 Swift 在 Xcode 中的位置
xcrun - find swift
在项目中修改 Swift 版本,Project -> (Select Your Project Target) -> Build Settings -> (Search "swiftt") -> Swift Compiler Language -> Swift Language Version -> 选择目标版本
change-swift-version用命令行查看 Build Setting 指定的 Swift 版本
xcodebuild -showBuildSettings | grep SWIFT_VERSION
在 Build Setting 中修改完 Swift 版本后,可能会在项目中遇到很多错误,可以使用 Xcode 的自动工具进行语法升级,Edit -> Convert -> To Current Swift Syntax
to-current-swift-syntax进行升级过程中可能会出现错误弹窗
convert-to-current-swift-syntax-failed
Convert to Current Swift Syntax Failed
Please ensure that all selected targets build successfully with the currently configured Swift version before attempting a migration.
目前尝试删除 UnitTest 和 UITests Target 后可以解决,暂未了解详细根因
如果在 Swift Language Version 中找不到目标版本,可以到 Swift.org/Download 中下载对应的 Swift ToolChain
download-toolchain下载完成后对软件包进行安装,安全完成后显示 The installation was successful.
安装完成被存放在 /Library/Developer/Toolchains
安装完成后我们可以在 Xcode 中选取特定的 Toolchains
tab-toolchians-select另一种方式,可以在 Xcode -> Preferences -> Components 中对 Toochains 进行选择
preferences->toolchains-select切换完成之后,我们希望在终端能够查看到最新的工具链,例如调用指令 swift --version
、xcrun swift --version
,需要新增环境变量 TOOLCHAINS,
export TOOLCHAINS=swift
删除环境变量指令
unset TOOLCHAINS
在代码中检查 Swift 版本
func printCurrentSwiftVersion() {
#if swift(>=5.5)
print("Current Swift Version: Swift 5.5")
#elseif swift(>=5.4)
print("Current Swift Version: Swift 5.4")
#elseif swift(>=5.3)
print("Current Swift Version: Swift 5.3")
#elseif swift(>=5.2)
print("Current Swift Version: Swift 5.2")
#elseif swift(>=5.1)
print("Current Swift Version: Swift 5.1")
#elseif swift(>=5.0)
print("Current Swift Version: Swift 5.0")
#elseif swift(>=4.2)
print("Current Swift Version: Swift 4.2")
#elseif swift(>=4.1)
print("Current Swift Version: Swift 4.1")
#elseif swift(>=4.0)
print("Current Swift Version: Swift 4.0")
#elseif swift(>=3.2)
print("Current Swift Version: Swift 3.2")
#elseif swift(>=3.0)
print("Current Swift Version: Swift 3.0")
#elseif swift(>=2.2)
print("Current Swift Version: Swift 2.2")
#elseif swift(>=2.1)
print("Current Swift Version: Swift 2.1")
#elseif swift(>=2.0)
print("Current Swift Version: Swift 2.0")
#elseif swift(>=1.2)
print("Current Swift Version: Swift 1.2")
#elseif swift(>=1.1)
print("Current Swift Version: Swift 1.1")
#elseif swift(>=1.0)
print("Current Swift Version: Swift 1.0")
#endif
}
网友评论