自第一个版本以来,Swift 一直影响用户的是它的应用程序二进制接口(ABI)不稳定。 简单的说,就是苹果不能在其操作系统中包含 Swift语言支持,因为使用 Swift 3 编写的应用程序将不能与 Swift 4 的语言支持二进制文件一起使用。解决方案是 App 在自己的安装包中包含 Swift 语言库,这增加了 App 的容量。
现在这一切终于要改变了。
Swift 5 发布后,语言将可以兼容 ABI。目前,Swift 5 已经包含在 iOS 12.2、tvOS 12.2、watchOS 5.2 和 macOS 10.14.4 系统中,这些系统目前正在测试之中。未来,当新版系统发布后,App Store 中使用 Swift 5 开发的应用可以缩小容量。与此同时,应用的启动速度也会小幅提升,因为 Swift 动态库包含在系统之中,可以缓存在内存中,在所有应用中 共享。那么 App 容量会缩小多少呢?
Apollo for Reddit 目前的容量为 35.7MB,其中包含 7.5MB Swift 库。当升级至 iOS 12.2 后,容量会缩小 20%,也就是不到 30MB。PCalc 的容量为 86.8MB,其中也包含 7.5MB Swift 库,升级后可以缩小 9%,也就是不到 80MB。
本文素材来自互联网