【发布时间】:2019-05-24 08:04:13
【问题描述】:
ABI 稳定性:这是 swift 5 自带的。它与操作系统或硬件有关吗?它是仅适用于新设备还是适用于具有新操作系统的旧设备?
【问题讨论】:
-
ABI 代表应用程序二进制接口。 This link has a very good detail about ABI.
ABI 稳定性:这是 swift 5 自带的。它与操作系统或硬件有关吗?它是仅适用于新设备还是适用于具有新操作系统的旧设备?
【问题讨论】:
ABI 稳定性完全是它的软件部分,而不是硬件。
当一种语言是 ABI 稳定的,这意味着它可以直接打包并链接到操作系统本身。在 Swift 5.0 之前,如果您构建 Swift 应用程序,则会将 Swift 动态库嵌入到该捆绑包中,以支持您的特定 Swift 版本
ABI 稳定性使操作系统供应商能够在操作系统中嵌入 Swift 标准库和运行时,与使用 Swift 5 或更高版本构建的应用程序兼容。
根据Swift 5 Release Notes 的 Apple 文档
Swift 应用不再包含用于 Swift 标准库和 Swift SDK 覆盖在构建变体中 运行 iOS 12.2、watchOS 5.2 和 tvOS 12.2 的设备。
您也可以查看Swift 5.0 - 9to5Mac
【讨论】:
ABI 代表 应用程序二进制接口
ABI 稳定性使操作系统供应商能够在操作系统中嵌入 Swift 标准库和运行时,与使用 Swift 5 或更高版本构建的应用程序兼容。
ABI 稳定性与“App Thinning”相关 根据苹果 Swift 应用程序不再包含 Swift 标准库的动态链接库。
以前,Swift 不是 ABI 稳定的,所以每个二进制文件都捆绑了自己的 Swift 动态库版本。如果您打开 .ipa,您可以在 SwiftSupport 或 Frameworks 中找到 swift 标准库 (.dylib),这会使 .ipa 的大小变大,但现在它相对较小,并且早期的 iphone 型号现在可以拥有更多的应用程序。
【讨论】: