iCloud集成在开发环境中工作,在生产环境中失败。看起来自定义记录区域不会与记录类型一起部署。请允许我解释一下。
配置: 我们配置的iCloud开发模式具有多个不同的自定义记录区域,每个区域都有自己的记录类型。在开发模式下,它完美运行 - 数据在设备之间保持不变,并且所有记录及其区域都在iCloud仪表板上可见。
观察: 但是,在将架构部署到生产环境时,自定义记录区域被省略了。记录类型已成功部署,但由于服务器不知道自定义记录区域,因此它们仍然无用。
每次生产应用程序尝试与iCloud同步时,都会告诉您(记录错误)记录类型不存在,您不会感到震惊。
我们尝试了什么: 我们尝试从头开始重建iCloud容器,我们尝试在仪表板上手动创建自定义记录区域。两者都没有。
此外,我们在1-2周之前为不同的应用程序部署了一个(看似)相同的架构,并且它没有任何问题。
有没有人对问题可能是什么以及如何解决它有任何想法?
答案 0 :(得分:1)
从CloudKit仪表板部署到生产,仅复制记录类型,安全角色和订阅类型。
首次部署应用时,CloudKit会复制容器 架构到生产环境。这包括记录类型, 安全角色和订阅类型,但不是您的记录 在开发环境中创建。
您必须使用CKModifyRecordZonesOperation操作创建自定义记录区域。
您可以检查自己的自定义区域是否已在 AppDelegate 中创建,可能使用UserDefaults
密钥,例如 CustomZonesCreated 。如果没有,请调用您将在其中创建自定义区域的功能。