首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SWIFT5.1编译的模块不能由SWIFT5.1.2编译器导入

使用SWIFT5.1编译的模块不能由SWIFT5.1.2编译器导入
EN

Stack Overflow用户
提问于 2019-11-01 05:57:20
回答 11查看 142K关注 0票数 182

我有一个框架(在本例中是RxSwift),我使用Xcode 11.0编译到传统的RxSwift.framework风格包中

这将罚款导入到Xcode 11.0中,而且11.1也没有出现任何问题。

今天,在Apple发布Xcode 11.2之后,我进行了升级,并出现了以下错误:

使用SWIFT5.1编译的模块不能由SWIFT5.1.2编译器导入

我习惯于快速编译错误匹配,我知道我可以使用Xcode 11.2重新编译RxSwift并继续,但是SWIFT5.1的标题功能是模块稳定性

我当时的印象是,既然我们有了模块稳定性,框架就不需要每次新的Xcode版本都重新编译了,但情况显然并非如此。

如果有人能解释这是怎么回事,我会非常感激的。Xcode 11.2是否显示了一个bug?或者,当我最初用Xcode 11.0编译时,我是否需要告诉它我想要模块稳定性?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2019-11-01 08:44:13

好的,如果你看了WWDC的视频,他们会解释说:https://developer.apple.com/videos/play/wwdc2019/416/

您需要在框架的构建设置中将Build settings > Build Options > Build library for Distribution选项设置为Yes,否则快速编译器将不会生成必要的.swiftinterface文件,这是未来编译器能够加载旧库的关键。

这在您的project.pbxproj文件中以如下方式结束:

代码语言:javascript
复制
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;

在设置此标志之后,我使用Xcode 11.0编译的框架(Swid5.1)可以被Xcode 11.2 (Swid5.1.2)使用,而且一切看起来都正常工作。

希望这个问题/答案能为所有没有看过WWDC视频的人提供有用的参考。

如果错误仍然存在,请再次转到Product >清洁生成文件夹 Build

票数 219
EN

Stack Overflow用户

发布于 2019-11-12 10:50:58

我在导入第三方库时也犯了同样的错误。我使用Xcode中的工具链修复了它,并在这里使用了2019年9月19日的版本https://swift.org/download/#releases。在那之后,我不得不重新导入我的库,它起了作用。

票数 2
EN

Stack Overflow用户

发布于 2021-01-07 23:24:00

在从Xcode 12.3返回到Xcode 11.3.1之后,我在回购上经历了这种情况。我已经简要地更新了命令行工具,并需要将它们恢复到早期版本,以便构建依赖关系。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58654714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档