Swift 5.1编译器无法导入使用Swift 5.0.1编译的模块

Bha*_*wal 22 ios swift xcode11

我有一个使用Xcode 10.3构建的VoiceSampler.framework

我正在尝试在新项目的Xcode11中使用该框架。我已经成功添加了该框架,但是import VoiceSample在AppDelegate中编写时,出现以下错误:

使用Swift 5.0.1编译的模块无法由Swift 5.1编译器导入:/Users/apple/Projects/CaptureAppSwift/VoiceSampler.framework/Modules/VoiceSampler.swiftmodule/arm64.swiftmodule

是否有一个我可以在Xcode 11中进行调整的构建设置以使其起作用?还有其他解决方法吗?

Lut*_*utz 15

造成此问题的原因是,您尝试嵌入使用其他编译器版本创建的预编译框架。

当前,只有编译器版本匹配时,才能嵌入预编译的框架!用于编译项目的swift编译器版本必须与用于编译框架的版本相同。

希望在将来的Swift /编译器版本中将取消此限制。有关更多信息,请参见此处的“模块稳定性”一章:https//swift.org/blog/abi-stability-and-more

正如评论中已经提到的那样,解决此问题的方法是将其升级或降级为适当的Xcode版本。(或者,如果可能,请使用所需的编译器版本重新编译框架,然后为您的项目使用相同的编译器版本。)

  • 我已经在5.1中重新编译了SDK并上传了它,但是当我通过cocoapods安装SDK时,它又回到了5.0.1。有什么办法可以解决这个问题吗? (4认同)
  • 从 2020 年 4 月开始,如果您降级 Xcode,则将不会提交应用程序。如果您将“是”设置为“构建分发库”,那么它会给您带来大量其他错误。那么有什么解决办法吗? (4认同)

Sur*_*gch 5

我在 Sqlite.swift 中遇到了类似的问题。执行以下命令对我有用:

carthage update --platform iOS --no-use-binaries
Run Code Online (Sandbox Code Playgroud)

这是这里建议的。


Nak*_*rma 5

只需要在框架的构建设置中将Build Libraries for Distribution选项设置为Yes

  • 在我打开“构建分发库”开关后,它给了我另一种类型的错误,即“<未知>:0:错误:不支持使用带有模块接口的桥接标头”。 (4认同)