【问题标题】:Module compiled with Swift 5.0 cannot be imported by the Swift 4.2.1 compiler使用 Swift 5.0 编译的模块不能被 Swift 4.2.1 编译器导入
【发布时间】:2019-09-08 08:34:26
【问题描述】:

类似的问题还有很多,但大多都是在使用cocoapods/carthage的背景下讨论的。我没有使用任何一个,并且手动导入了我所有的框架。

我使用的是 Xcode 10.1。我只是将我的一个框架更新到他们的最新版本(我们需要一个仅在此版本上可用的功能),现在收到此错误消息。我也有 Xcode 10.2,但该项目已经在 Swift 4.2.1 中编译了 3 个其他框架,当尝试使用 Xcode 10.2 构建时,这些框架会抛出类似的错误(使用 swift 4.2.1 编译的模块不能被 swift 5.0 导入)。

这个问题的大多数答案都围绕着将每个目标的 Swift 语言版本设置为 4.2.1。但是,由于我没有使用可可豆荚,我在 Xcode 中看不到任何选项来更改这个单独框架的 swift 语言版本。有任何想法吗?谢谢

【问题讨论】:

  • Swift 4 以上版本可与 Xcode 10.2 一起使用。我最近将一个 Swift 3 项目更新为 Swift 4,现在我将它与 Xcode 10.2 一起使用。
  • 是的,我尝试使用 Xcode 10.2 并将项目 Swift 语言版本设置为 4.2,但我仍然收到“使用 swift 4.2.1 编译的模块无法由 swift 5.0 编译器导入”
  • 我认为问题在于这些是编译的 .framework 文件,而不仅仅是常规的 swift 文件。它们已经被编译并且在构建设置中更改 swift 语言版本不会影响各个框架。
  • 好吧@joey,你是对的。但如果是这样的话,你在目标项目中使用不同版本的 Swift 就没有任何运气了。您必须使用与编译框架完全相同的版本。这是 Swift 编译框架的缺点。
  • 就我而言,ARVideoKit 框架在 xcode 10.2 中不可用。但在最后一个 xcode 中,它是可用的。所以没有解决方案。请在您的最后检查

标签: ios swift xcode swift5


【解决方案1】:

这个错误在 Xcode 版本 10.3 上一直显示给我,即使我在项目中将我的 Swift 版本设置为 4.2。我尝试删除 DerivedData 和所有内容,但无济于事。我安装了 Xcode 10.1,它运行良好,没有任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-17
    • 2020-02-27
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    相关资源
    最近更新 更多