Swiftdynamic库向后兼容旧的Swift版本项目

我开始从头开始编写SDK。 我不确定是否应该用Swift或Objective-C编写它。 我觉得Swift在很多方面都比Objective-C好,但是我的主要问题是 – Swiftdynamic库会支持Swift的老版本吗? 假设我在Swift 3.0中编写我的dynamic库,是否可以在使用Swift 2.2的项目中使用该dynamic库? 我在阅读的一篇文章中发现了这一点

dynamic库是可以链接到应用程序的可执行代码块。 此function允许当前的Swift应用程序随着时间的推移而与更新版本的Swift语言进行链接。

这是否意味着我将能够在使用Swift 2.2的项目中运行Swift 3.0中构build的dynamic库? 我也在苹果文档中find了这个

首先,Swift 2.3和Swift 3不是二进制兼容的,所以你的应用程序的整个代码库需要select一个版本的Swift。

我觉得这与第一个说法相矛盾。 我知道在Swift中导入Objective-C库使用桥接头是非常简单的,对于相反的情况也是如此吗? 在尝试使用Objective-C项目来实现Swift库时,是否会遇到任何问题或障碍。 我找不到任何解决向后兼容问题的答案或文章。 任何帮助深表感谢。 谢谢!

TLDR:dynamic库是用Swift 3(或更高版本)构build的,使用老版本的Swift或Objective-C中的项目

简而言之,第一个引用的声明是错误的(目前)。

Swift ABI(应用程序二进制接口)尚未最终确定。 ABI是函数调用外观的一系列约定,variables和引用如何存储在一个真实机器中等等。在最终完成之前,应用程序中的所有Swift模块都必须使用相同版本的Swift进行编译。

有关Swift ABI的更多信息,请参阅Swift ABI Manifesto。