Ios CloudKit订阅错误:公共数据库中不允许Metasync订阅

Ios CloudKit订阅错误:公共数据库中不允许Metasync订阅,ios,cloudkit,Ios,Cloudkit,尝试订阅公共数据库更改时出现此错误: CKError:“部分故障”(2/1011);“未能修改某些内容 订阅”;uuid=。。。;容器ID=“…”;部分错误:{ allpublic changes=CKError:“无效参数”(12/2006);服务器 message=“公共数据库中不允许元同步订阅” 谷歌搜索不会对此错误消息产生任何结果。其他人遇到过吗 iOS 10,在设备上 编辑: 删除了阻止显示整个错误消息的某些字符 如果我在私有数据库上执行相同操作,则不会出现问题。正如错误所示,公共数据

尝试订阅公共数据库更改时出现此错误:

CKError:“部分故障”(2/1011);“未能修改某些内容 订阅”;uuid=。。。;容器ID=“…”;部分错误:{ allpublic changes=CKError:“无效参数”(12/2006);服务器 message=“公共数据库中不允许元同步订阅”

谷歌搜索不会对此错误消息产生任何结果。其他人遇到过吗

iOS 10,在设备上

编辑
删除了阻止显示整个错误消息的某些字符


如果我在私有数据库上执行相同操作,则不会出现问题。

正如错误所示,公共数据库中不支持CKDatabaseSubscriptions。对于公共数据库,您需要使用CKQuerySubscription来代替它。

您解决了吗?我没有,我最终采用了另一种方法(已经有一段时间了,不记得了),但我放弃了cloud kit,firebase更简单、更好。我刚刚在Apple dev论坛上问了一个问题,我得到了这样的回答:“正如错误所示,公共数据库不支持CKDatabaseSubscription。对于公共数据库,您需要改为使用CKQuerySubscription,”检查@MEnnabah是的,这就是为什么我采取了另一种方法。措辞(“Metasync”?)但一开始就把我甩了。很遗憾,你不能订阅公共数据库更改,这要么是糟糕的设计,要么是苹果根本不关心CloudKit。根据WWDC视频:…
CKDatabaseSubscriptions
在公共数据库上是允许的。也就是说,我遇到了同样的错误:
Metasync订阅a当我尝试设置公共数据库时,不允许在公共数据库中使用
。'_(ツ)_/¯
let subscription = CKDatabaseSubscription(subscriptionID: "allpublic-changes")

let notificationInfo = CKNotificationInfo()
notificationInfo.shouldSendContentAvailable = true
subscription.notificationInfo = notificationInfo

let operation = CKModifySubscriptionsOperation(subscriptionsToSave: [subscription], subscriptionIDsToDelete: [])
    operation.modifySubscriptionsCompletionBlock = { [weak self] (savedSubscriptions:[CKSubscription]?, deletedSubscriptionIDs:[String]?, error:Error?) in

        guard error == nil else{

            print("modifySubscriptionsCompletionBlock error: \(error!)")
            return
        }

        ...
    }

operation.qualityOfService = .utility
CKContainer.default().publicCloudDatabase.add(operation)