1

iCloud 集成在开发环境中有效,在生产环境中失败。似乎自定义记录区域没有与记录类型一起部署。请允许我解释一下。

配置: 我们配置的 iCloud 开发模式有多个不同的自定义记录区域,每个区域都有自己的记录类型。在开发模式下,它可以完美运行——数据跨设备持续存在,所有记录及其区域都在 iCloud 仪表板上可见。

观察: 然而,当我们将模式部署到生产环境时,自定义记录区域被忽略了。记录类型已成功部署,但它们仍然无用,因为服务器不知道自定义记录区域。

得知每次生产应用程序尝试与 iCloud 同步时,您不会感到震惊,它会被告知(记录错误)记录类型不存在。

我们尝试了什么: 我们尝试从头开始重建 iCloud 容器,我们尝试在仪表板上手动创建自定义记录区域。都没有奏效。

此外,就在 1-2 周前,我们为不同的应用程序部署了一个(看似)相同的架构,并且它没有任何问题就成功了。

有没有人对问题可能是什么以及如何解决有任何想法?

4

1 回答 1

3

从 CloudKit 仪表板部署到生产仅复制记录类型、安全角色和订阅类型。

第一次部署应用程序时,CloudKit 会将容器模式复制到生产环境。这包括记录类型、安全角色和订阅类型,但不包括您在开发环境中创建的记录。

您必须使用CKModifyRecordZonesOperation操作创建自定义记录区域。

您可以检查您的自定义区域是否已在您的AppDelegate中创建,可能使用一个UserDefaults键,例如CustomZonesCreated。如果没有,请调用您将在其中创建自定义区域的函数。

CloudKit 快速入门指南中的更多信息

于 2018-03-22T08:33:11.740 回答