Xcode中的swift语言版本构建设置是啥意思?

Posted

技术标签:

【中文标题】Xcode中的swift语言版本构建设置是啥意思?【英文标题】:What does swift language version build setting in Xcode mean?Xcode中的swift语言版本构建设置是什么意思? 【发布时间】:2020-01-19 14:40:03 【问题描述】:

我的框架项目已升级到 Swift 5 和 Xcode 10.3,但现在我仍然想在 Swift 4.2 上构建它。

我尝试将Xcode 10.3 的构建设置中的Swift Language Version 设置为Swift 4.2。我想知道为什么它有一些只出现在Swift 5.0 上的语法,但是该项目已成功构建,但是当我将该框架放入在 Xcode 10 上运行的项目(它与 Swift 4.2 一起提供)时,它无法构建。错误是“不支持 SWIFT 5.0...”。

那么在这种情况下,Swift Language Version 究竟意味着什么?我们有办法用 Swift 4.2 和 Xcode 10.3 构建这个框架吗?谢谢大家的回答。

【问题讨论】:

@Dai,Swift 语言版本表示您的项目支持哪个 swift 版本,如果您的 Xcode 支持该 swift 版本,我们可以更改这是 Build 设置。 你发现了吗?下面的答案似乎并不能真正解释这一点...... @benchuk 我已经阅读了关于 *** 的解释,但我现在找不到它。据我所知,当 Xcode 版本发布时,它将附带一个 swift 编译器版本。您在构建设置中配置的内容只是使其与旧 swift 版本的源代码一起使用,这就是为什么您的输出框架具有与构建设置不同的 swift 版本的原因。 @DaiTran 感谢您的回答,总的来说,它似乎没有按照您的建议做,例如我在 xCode 12 上(工具链版本是 swift 5)我的项目在 xCode 10 上运行良好工具链 swift 4(代码是为 swift 4 编写的)在项目设置中选择 swift 版本 4 时,项目不会在 xcode 11 上编译 - 唯一使它编译的是将 xCode 11 工具链更改为 swift 4跨度> 【参考方案1】:

@Dai,Swift 语言版本表示您的项目支持哪个 swift 版本,如果您的 Xcode 支持该 swift 版本,我们可以在 Build 设置中更改它。

转到构建设置 Swift 编译器语言 然后更改您项目支持的版本。

【讨论】:

这是什么时候?我什么时候应该选择不同的版本?

以上是关于Xcode中的swift语言版本构建设置是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 的构建设置中的“-weak_framework”是啥意思?

Xcode 中使用较低 4.0.3 版本而不是 5.0.1 的 Swift 构建设置未强制执行

对于使用Swift的目标,需要正确配置“Swift语言版本”(SWIFT_VERSION)

目标 C 项目中的 Xcode 8.3 Swift 版本错误 (SWIFT_VERSION)

@objc 动态变量在 Swift 4 中是啥意思

使用旧版 Swift 语言版本”(SWIFT_VERSION)不起作用