8

最近我读了几篇关于 Swift 5 是 ABI Stable 的文章(这基本上意味着你不需要在 App 包中打包应用程序自己的 Swift 动态库版本),这是令人困惑的部分:

因为 Swift 将嵌入到 iOS 操作系统中。

现在听起来 Swift 动态库现在会直接进入 iOS。这是否意味着编译 Swift 5 的应用程序只能在特定的 iOS 版本上运行?

4

1 回答 1

12

您走在正确的轨道上,但关键是该应用程序只能在特定的 iOS 版本或更高版本上运行。ABI 稳定性的全部目标是允许使用一个版本的 Swift 编译的 Swift 二进制文件(即应用程序)能够与使用不同版本的 Swift 编译的二进制文件(即框架)进行互操作。

但是,是的,为了利用 ABI 稳定性,您的应用程序只能在 iOS 13(或任何版本)或更高版本上运行。

这就是 ObjC(以及 C 和 C++ 以及大多数语言)中的工作方式。我可以在 iOS 10 上构建我的 Objective-C 应用程序,并期望它可以毫无问题地与 iOS 11 上的 Foundation 和 UIKit 链接。你今天不能用 Swift 库来做到这一点。

于 2018-10-11T16:01:41.427 回答