Module compiled with Swift 5.2.4 cannot be imported by the Swift 5.3 compiler
Module compiled with Swift 5.1 cannot be imported by the Swift 5.2 compiler
Module compiled with Swift 5.2 cannot be imported in Swift 5.0
...
最近在用Swift写SDK,编译后给别人使用,报了很多诸如此类的错误,现在汇总一下解决方法。
问题产生的原因就是Swift编译的Framework的swift版本和使用者APP使用的Swift版本不一致就会报这个错误,所以解决思路是同步Swift版本:
carthage update --platform iOS --no-use-binaries
1. 删除 \Pods 文件夹内容
2. pod install
Xcode Toolchain包括编译器,lldb以及其他相关工具的副本,这些副本可提供在特定版本的Swift中工作时提供相应环境。
打开Xcode的首选项,Components > Toolchains ,然后选择已安装的Swift工具链。现在,您可以编译并运行该应用程序。
Build Setting
将“Build Libraries for Distribution”选项设置为“YES”,否则Swift编译器不会生成必要的.swiftinterface
文件,这是将来编译器能够加载旧库的关键。 BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
修改完之后 Product > Clean Build Folder 然后再次 Build
BUILD_LIBRARIE_FOR_DISTRIBUTION
构建的,并且包含与模块本身名称相同的公共类型,则客户端将无法导入该模块。(19481048)(FB5863238)
解决方法:重命名类型或模块以消除冲突。BUILD_LIBRARIES_FOR_DISTRIBUTION
使用时完全OK的,配置了之后无法使用,这时候你的选择有三:Module compiled with Swift 5.1 cannot be imported by the Swift 5.1.2 compiler Module compiled with Swift 5.0.1 cannot be imported by the Swift 5.1 compiler Module compiled with swift 4.0 cannot be imported in swift 3.1 Module compiled with Swift 4.0 cannot be imported in Swift 4.0.1 https://bugs.swift.org/browse/SR-11704 WWDC 2019对于此问题的视频https://developer.apple.com/videos/play/wwdc2019/416/ Swift Framework 转成 OC Framework 来做版本兼容