主要观点:对 iOS 18 内置应用进行分析,回答关于其包含二进制文件数量、使用的编程语言、使用 Swift 的应用数量及 SwiftUI 与 UIKit 的使用比例等问题,还介绍了相关方法论、新的安全功能、Secure Enclave 中 Swift 的使用等,并提供了原始数据下载及支持博客的方式。
关键信息:
- iOS 18 包含 6800 个二进制文件,比 iOS 17 增加 770 个,其中 592 个使用 SwiftUI,含至少一行 Swift 代码的二进制文件数量在 iOS 17 到 iOS 18 间增长 50%。
- 采用 SwiftUI 的应用数量持续增长,如新的 Passwords 等应用,新开发技术如 Apple Intelligence 等也依赖 Swift。
- 比较 UIKit 和 SwiftUI 时,iOS 18 中使用 UIKit 的应用仅增长约 8%,而使用 SwiftUI 的增长超过 50%,iOS 18 还引入了新的 SwiftUICore 框架。
- iOS 18 扩展了 BlastDoor 安全功能,新增多个相关私有框架。
- WWDC22 中提到 Swift 适用于 Secure Enclave 处理器,iOS 17 和 iOS 18 的 Secure Enclave 中二进制文件数量相同,其中
dxio
二进制文件重命名为dxio_swift
且用嵌入式 Swift 构建,而 macOS 的 Secure Enclave 在hibernation
二进制文件中使用 Swift。
重要细节: - 分析只包括所谓的“iOS”即内核之上的部分,不包括 XNU 内核和低级固件。
- 开发者可混合不同编程语言创建一个二进制文件,含一行 Swift 代码的应用也计为使用 Swift。
- 文中对 Objective-C++的检测方法存在局限性,此类二进制文件计为同时使用 Objective-C 和 C++。
- 提供了从 iPhone OS 1.0 到 iOS 18.0 各版本的原始数据下载链接及支持博客的相关工具介绍和下载链接。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。