用途:为基于 iCloud 的结构化数据存储与同步提供 CloudKit 参考,适用于实现 CloudKit 同步、CKSyncEngine、CKRecord、CKDatabase、SwiftData CloudKit、共享/公共数据库与 CloudKit 区域等场景;不适用于简单文件同步(应改用 axiom-icloud-drive-ref)。
主要能力:介绍三种现代方案——SwiftData + CloudKit(iOS 17+,最易用,仅私有数据库,自动同步,不支持 @Attribute(.unique))、CKSyncEngine(iOS 17+,WWDC 2023,适合 SQLite/GRDB/JSON 等自定义持久化,自动管理拉取上传、冲突与账号变更)、原生 CloudKit API(最大控制力,复杂度更高)。涵盖 CKContainer、CKDatabase、CKRecord、CKRecordZone、CKAsset 等核心类型,以及增删改查、批量修改、冲突解决(savePolicy、serverRecordChanged)、私有/公共/共享数据库作用域、CKAsset 文件存储、数据库/查询/区域订阅与推送处理、CKShare 共享与参与者管理、CloudKit Console 监控(通知、遥测、日志)。
使用方式:需在 Xcode 中配置 iCloud 能力与 CloudKit 容器权限;SwiftData 通过 ModelConfiguration(cloudKitDatabase: .private("iCloud.com.example.app")) 配置;CKSyncEngine 需实现 CKSyncEngineDelegate 并持久化状态序列化;原生 API 使用 CKQuery、CKModifyRecordsOperation、CKFetchRecordZoneChangesOperation 等。增量同步依赖 CKServerChangeToken。
适用场景:结构化记录同步、公共/共享数据库、协作共享、冲突处理、同步问题调试与性能监控。
限制:最低 iOS 10.0(基础),CKSyncEngine 与 SwiftData 集成需 iOS 17.0+;SwiftData 方案仅支持私有数据库且同步控制较少;CKAsset 需文件 URL 而非 Data。具体收费、价格与效果资料暂未提供。