用途:指导在 Apple 生态中选择合适的同步技术并实现可靠的离线优先同步架构。核心原则是按数据形态选技术:结构化记录用 CloudKit,文件类数据用 iCloud Drive。
主要能力:提供决策树(SwiftData+CloudKit、CKSyncEngine、iCloud Drive、NSUbiquitousKeyValueStore);对比 CloudKit 与 iCloud Drive 在数据形态、查询、关系、冲突解决、用户可见性、共享与离线方面的差异;给出离线优先写法(先写本地、后台排队同步);三种冲突解决策略(后写覆盖、合并、用户选择);常见模式(SwiftData+CloudKit、CKSyncEngine、UIDocument);反模式(忽略同步状态、阻塞 UI、未部署生产 Schema、无重试);同步状态指示;权限清单;大数据量分批与增量同步建议。
使用方式:按决策树选型;同步代码必须离线可用,写入本地后通过 CKSyncEngine 排队;用指数退避重试;提交 App Store 前在 CloudKit Console 部署 Schema 到 Production 并用生产环境测试;大数据集用 200 条分批与 BGProcessingTask。
适用场景:iOS 17+ 应用同步结构化数据或用户文档,需要处理多设备冲突与网络失败。
限制:SwiftData+CloudKit 仅支持私有数据库、自动同步、无自定义冲突解决,且不支持 @Attribute(.unique);NSUbiquitousKeyValueStore 限 1MB;iCloud Drive 仅支持文件名查询、无原生关系。具体 API 细节见相关参考技能。