使用Swift 3.1编译的模块无法在Swift 4.0中导入

say*_*llo -3 swift swift4

我使用框架(没有Carthage,没有Pods)只能将它复制到项目中.编译后我得到错误:

Module compiled with Swift 3.1 cannot be imported in Swift 4.0:
/Path/To/Framework/Module/x86_64.swiftmodule
Run Code Online (Sandbox Code Playgroud)

再次清洁和建设项目不起作用.有没有办法解决这个问题?

Mer*_*ran 5

不,您需要使用相同的Swift版本编译所有Swift二进制文件.ABI稳定性(这是你的问题的原因)被推迟到下一个Swift版本(尽管如果我没记错的话,最初计划用于Swift 3).您可以在此处跟踪此功能

在Swift具有ABI稳定性之前,您需要使用每个Swift版本重新编译源代码.

编辑:正如Shai Mishali指出的那样,遗憾的是,如果没有Module格式的稳定性,ABI稳定性就不够了