我有一个框架(在本例中是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编译时,我是否需要告诉它我想要模块稳定性?
发布于 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文件中以如下方式结束:
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;在设置此标志之后,我使用Xcode 11.0编译的框架(Swid5.1)可以被Xcode 11.2 (Swid5.1.2)使用,而且一切看起来都正常工作。
希望这个问题/答案能为所有没有看过WWDC视频的人提供有用的参考。
如果错误仍然存在,请再次转到Product >清洁生成文件夹和 Build 。
发布于 2019-11-12 10:50:58
我在导入第三方库时也犯了同样的错误。我使用Xcode中的工具链修复了它,并在这里使用了2019年9月19日的版本https://swift.org/download/#releases。在那之后,我不得不重新导入我的库,它起了作用。
发布于 2021-01-07 23:24:00
在从Xcode 12.3返回到Xcode 11.3.1之后,我在回购上经历了这种情况。我已经简要地更新了命令行工具,并需要将它们恢复到早期版本,以便构建依赖关系。
https://stackoverflow.com/questions/58654714
复制相似问题