我正在尝试设置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证书吗?或者我正在犯一些错误?
答案 0 :(得分:4)
我遇到了同样的错误,我在iCloud帐户上启用了“iCloud Drive”后就消失了。