【问题标题】:CloudKit subscription not working in productionCloudKit 订阅在生产中不起作用
【发布时间】:2022-06-27 17:27:22
【问题描述】:

使用来自 CloudKit 的 CKSubscription 来监听数据库的更新和更改并接收静默通知在 开发 上工作正常,但在 生产 中它就不起作用了完全没有。

尝试使用save(_:completionHandler:)CKDatabase 上保存CKSubscription 会引发错误:

在 CloudKit 仪表板(Web 界面)日志上,订阅在开发中运行良好,但在生产中却出现错误:BAD_REQUEST,日志类型为:subscription modify

就在它说的文档上:

注意

首先在开发环境中创建订阅,然后 然后将它们推广到生产中。尝试创建订阅 直接在生产环境中会导致错误。

所以首先我需要在开发中创建它,然后将其推广到生产中,好的,但是如何?

我在文档中找不到太多说明,但阅读了一些有用的帖子和博客,包括 Filip Němeček 的 this one,他们指出这是在 CloudKit 仪表板上完成的。

过程应该很简单:

  1. 在开发时创建CKSubscription(仅使用模拟器即可)。
  2. 转到 CloudKit 仪表板 > 数据库 > 容器(您的应用程序)> 环境:开发 > 数据 > 订阅 > 数据库(公共、私有或共享)。
  3. 新创建的订阅应该在列表中。
  4. 部署架构更改...(部署到生产环境,就像部署任何其他架构更改一样)。
  5. 新订阅已准备好投入生产。

问题是3 点对我不起作用,仪表板上的订阅下没有新订阅。

如何将订阅推广到生产环境?

【问题讨论】:

    标签: ios swift push-notification cloudkit cksubscription


    【解决方案1】:

    在论坛上阅读更多 cmets 的人提到您只能在 CloudKit 仪表板上看到由登录仪表板的活动帐户创建的订阅,我正在使用沙盒帐户进行测试。

    CloudKit 仪表板上有一个按钮可以帮助解决这个问题:Act As iCloud Account…。但是一旦激活,功能就非常有限。这也不是我的选择。

    我发现,如果您在开发环境中创建一个CKSubscription(并且它成功,没有抛出错误),这将可以进行推广,即使您在仪表板上看不到它强>。

    1. 在开发中创建订阅
    2. 转到 CloudKit 仪表板
    3. 部署架构更改...
    4. 即使看起来没什么可部署的,还是部署吧
    5. 订阅必须准备好用于生产环境

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      相关资源
      最近更新 更多