我对 CloudKit 的理解是,如果用户有两台设备 - 一台具有具有 v2 架构的应用程序版本,而另一台具有 v1 架构的应用程序版本 - 具有 v1 架构的设备将接收新数据,但仅适用于 v1 中的字段。在架构 v2 中创建的新字段中的所有新数据都将针对该特定设备被丢弃。稍后,当具有 v1 架构的应用程序更新为 v2 架构时,在较新版本的应用程序上生成的 v2 字段中的新数据将不再被拉取,并且两个设备的数据不匹配。
这种理解来自讨论 NSPersistentCloudKitContainer(我正在使用的)的这篇博客。
这显然是一个问题,在第一个设备更新应用程序(例如 iPhone)和第二个设备更新应用程序(例如 iPad)之间可能有几天的时间。我可以在我的架构或实现中部署哪些策略来解决这个问题?