保存CKDatabaseSubscription时获得“用户设置拒绝了CloudKit访问”

vag*_*ant 2 cocoa-touch ios swift cloudkit

我正在尝试设置CloudKit CKDatabaseSubscription并尝试保存它,出现以下错误:

'“未认证”(9/1002); “用户设置拒绝了CloudKit访问”;3.0秒后重试

我可以通过应用程序在私有数据库上创建记录,没有任何问题,但是订阅将无法保存。

<snip>
       container = CKContainer(identifier: "<valid identifier>")
       publicDB = container.publicCloudDatabase
       privateDB = container.privateCloudDatabase
       createSubscriptions()
</snip>

   func createSubscriptions()
   {
     let sub = CKDatabaseSubscription(subscriptionID: "main")
     let noteInfo = CKNotificationInfo()
     noteInfo.shouldSendContentAvailable = true
     sub.notificationInfo = noteInfo

     let op = CKModifySubscriptionsOperation(subscriptionsToSave: [sub], subscriptionIDsToDelete: nil)
     op.qualityOfService = .utility
     op.modifySubscriptionsCompletionBlock = {(subscriptions, name, error) in
                print ("error-\(error)")
            }
     privateDB.add(op)
   }
Run Code Online (Sandbox Code Playgroud)

因此,在上面的代码中,从块中的打印内容打印出了以上错误。一切都在范围内,可以正常编译,用户可以登录iCloud等。在模拟器和设备上均发生。

CloudKit订阅是否需要ASPN证书?还是我犯了一些错误?

sof*_*ved 5

我遇到了同样的错误,并且在iCloud帐户上启用了“ iCloud Drive”后,该错误消失了。