保存CKDatabaseSubscription获取“用户设置拒绝CloudKit访问”

时间:2016-10-10 18:17:11

标签: ios swift cocoa-touch cloudkit

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

'"未经过身份验证" (一千〇二分之九); " CloudKit访问被用户设置拒绝&#34 ;; 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)
   }

因此在上面的代码中,上面的错误从块中的print打印出来。一切都在范围内,编译得很好,用户登录到iCloud等。在模拟器和设备上都会发生。

CloudKit订阅需要ASPN证书吗?或者我正在犯一些错误?

1 个答案:

答案 0 :(得分:4)

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