部署到生产:为啥 CloudKit 删除订阅类型?

Posted

技术标签:

【中文标题】部署到生产:为啥 CloudKit 删除订阅类型?【英文标题】:Deploy to Production: Why is CloudKit deleting Subscription Types?部署到生产:为什么 CloudKit 删除订阅类型? 【发布时间】:2021-02-26 00:26:06 【问题描述】:

我正在将更改从开发环境部署到生产环境。当我进入 iCloud 开发者仪表板时,导航到容器,然后选择“将架构部署到生产环境”,我注意到更改中包含订阅类型的删除。

(这些订阅类型由CKQuerySubscription 创建,它们确实存在于我的开发模式和生产模式中。同样,这是对生产环境的更新。)

我查看了我正在使用的其他应用程序,所有“将架构部署到生产”的尝试都包括删除每个订阅类型。

这是怎么回事?

我是否应该担心部署到生产环境会破坏我们付费客户现有的CKQuerySubscription 基础架构?

Apple 是否反对将订阅包含在架构中? (CKDatabaseSubscriptions 根本不需要在模式中。)

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

这些订阅是否已经投入生产? 如果是,那么这些订阅只会从部署中删除到生产中,它们不会从生产中删除。

编辑 抱歉,您的评论回复晚了。

如果您对订阅类型进行了更改,它们将被覆盖而不是删除,如果您没有更改,则不会发生任何事情,它们不会从 CloudKit 中删除。

【讨论】:

我不确定我是否理解 - 是的,订阅类型存在于开发和生产环境中。它们被标记为删除是什么意思? Re: Edit -> 是否记录在任何地方?通过删除架构中的订阅类型,我对我们所有客户的同步中断的前景感到震惊。【参考方案2】:

问题在于“将架构部署到生产”对话框。尽管将订阅类型显示为标记为删除,但订阅类型并未从生产环境中删除。

我确实将架构部署到生产环境中,并且确认订阅类型在生产环境中仍然有效。

【讨论】:

以上是关于部署到生产:为啥 CloudKit 删除订阅类型?的主要内容,如果未能解决你的问题,请参考以下文章

CloudKit 支持应用程序开发到生产部署

如何找出 CloudKit 订阅何时被删除?

未收到来自 CloudKit 订阅的推送通知

tvOS 中的 CloudKit 订阅

swift Swift - CloudKit - 删除订阅

将 iOS 应用从 Cloudkit 开发转移到生产