Xcode - Swift Version

查看 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.

toolchain-install-successful

安装完成被存放在 /Library/Developer/Toolchains

toolchains-path

安装完成后我们可以在 Xcode 中选取特定的 Toolchains

tab-toolchians-select

另一种方式,可以在 Xcode -> Preferences -> Components 中对 Toochains 进行选择

preferences->toolchains-select

切换完成之后,我们希望在终端能够查看到最新的工具链,例如调用指令 swift --versionxcrun 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
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容