Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不能在Swift 4.0中导入使用Swift 3.1编译的模块_Swift_Swift4 - Fatal编程技术网

不能在Swift 4.0中导入使用Swift 3.1编译的模块

不能在Swift 4.0中导入使用Swift 3.1编译的模块,swift,swift4,Swift,Swift4,我使用框架(没有迦太基,没有吊舱)是将其复制到项目中的唯一方法。编译后,我得到一个错误: Module compiled with Swift 3.1 cannot be imported in Swift 4.0: /Path/To/Framework/Module/x86_64.swiftmodule 清洁和建筑工程再次失败。有没有办法解决这个问题?没有,您需要用相同的Swift版本编译所有Swift二进制文件。ABI稳定性(这是您出现问题的原因)被推迟到下一个Swift版本(尽管它最初计

我使用框架(没有迦太基,没有吊舱)是将其复制到项目中的唯一方法。编译后,我得到一个错误:

Module compiled with Swift 3.1 cannot be imported in Swift 4.0:
/Path/To/Framework/Module/x86_64.swiftmodule

清洁和建筑工程再次失败。有没有办法解决这个问题?

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

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


编辑:正如Shai Mishali指出的,不幸的是,如果没有Xcode 9 GM发行说明中的模块格式稳定性

,“Swift 3.2和Swift 4.0都不支持与使用任何早期版本的Swift编译的目标链接,包括Swift 3.1”需要特别注意的是,这与ABI稳定性无关——提供ABI稳定性并不能解决二进制swift框架的问题。您能进一步解释吗?如果需要,我很乐意更正我的答案。ABI稳定性允许我们一起使用来自不同Swift版本的二进制文件,这里有什么不正确的地方?“ABI稳定性对于二进制框架来说是必要的,尽管还不够。模块格式稳定性也是必需的,超出了本文档的范围。”:看来ABI稳定性与此问题有关:)