问题描述
是的,结果证明如果您观看WWDC视频,他们会对其进行解释:https://developer.apple.com/videos/play/wwdc2019/416/
您需要在框架的构建设置中将“ 的 选项设置为“
,否则swift编译器不会生成必需的.swiftinterface
文件,这是将来编译器能够加载旧库的关键。
BUILD_LIBRARY_FOR_disTRIBUTION = YES;
设置此标志后,我使用Xcode 11.0(swift 5.1)编译的框架可以被Xcode 11.2(swift 5.1.2)使用,并且一切似乎都正常工作。
希望这个问题/答案将为所有未观看所有WWDC视频的人提供有用的参考
如果错误仍然存在,请转至 > 然后再次 。
解决方法
我有一个框架(在本例中为RxSwift),已使用Xcode 11.0将其编译为传统RxSwift.framework
样式包
这很好地导入了Xcode 11.0和11.1,从没有任何问题
今天,在Apple发布Xcode 11.2时,我进行了升级,并看到以下错误:
使用Swift 5.1编译的模块不能由Swift 5.1.2编译器导入
我曾经习惯过快速编译器不匹配,而且我知道我可以使用Xcode 11.2重新编译RxSwift并继续进行,但是Swift 5.1的头条功能是
模块稳定性 。
我给人的印象是,既然我们已经有了模块稳定性,那么框架就不需要继续与每个新的Xcode版本一起重新编译,但是事实并非如此。
如果有人能解释这里发生的事情,我将不胜感激。Xcode 11.2是否存在错误?还是我最初用Xcode 11.0编译时需要某种方式告诉它我想要模块稳定性吗?