【发布时间】: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 我已经阅读了关于 stackoverflow 的解释,但我现在找不到它。据我所知,当 Xcode 版本发布时,它将附带一个 swift 编译器版本。您在构建设置中配置的内容只是使其与旧 swift 版本的源代码一起使用,这就是为什么您的输出框架具有与构建设置不同的 swift 版本的原因。
-
@DaiTran 感谢您的回答,总的来说,它似乎没有按照您的建议做,例如我在 xCode 12 上(工具链版本是 swift 5)我的项目在 xCode 10 上运行良好工具链 swift 4(代码是为 swift 4 编写的)在项目设置中选择 swift 版本 4 时,项目不会在 xcode 11 上编译 - 唯一使它编译的是将 xCode 11 工具链更改为 swift 4跨度>
标签: ios swift xcode compiler-construction version