2016-09-16 46 views
3

我在iOS应用程序之一中集成了cloudkit框架,并且在iOS 8和9中工作正常,但在iOS 10中没有工作。它无法获取公共数据库中没有活动iCloud帐户的记录。能够在IOS 8和9,以获取记录,如果用户受限的iCloud驱动该应用也但它在IOS 10发生故障时,得到错误等访问云套件公用数据库时出现“Not Authenticated”(9/1002)错误

CKError 0x170249090:“未得到认证”(一千○二分之九); “不支持 帐户,所以不会返回身份验证令牌。”

它不适用于iOS设备中的开发和生产cloudkit环境。 我测试了AdHoc构建指向生产的应用程序。

下面是我的代码

CKQuery *query = [[CKQuery alloc] initWithRecordType:@"RecordSettings" predicate:[NSPredicate predicateWithFormat:@"TRUEPREDICATE"]]; 

CKQueryOperation *queryOperation = [[CKQueryOperation alloc] initWithQuery:query]; 
queryOperation.queuePriority = NSOperationQueuePriorityVeryHigh; 
queryOperation.recordFetchedBlock = ^(CKRecord *record) { 
       if(record != nil) { 
      } 
}; 
queryOperation.queryCompletionBlock = ^(CKQueryCursor * __nullable cursor, NSError * __nullable operationError) { 

        NSLog(@"iCloud error: %@", operationError.description); 
}; 
[[[CKContainer defaultContainer] publicCloudDatabase] addOperation:queryOperation]; 
+0

这是什么运气? –

+0

仍然无法弄清楚。你也面临同样的问题吗? – Madhu

回答

-3

这个问题存在从iOS的10.010.1.1,但它已经在iOS的10.2得到解决。

4

您需要登录使用的模拟器或设备iCloud帐户。它为我工作。

答案是在部分Enter iCloud Credentials Before Running Your App

在发展,当你在模拟器或者设备运行通过Xcode中的应用程序,您需要输入iCloud的凭据在公共数据库中读取记录。在生产中,默认权限允许未经身份验证的用户读取公共数据库中的记录,但不允许他们写入记录。

+0

我同意你所说的,但它不适用于iOS 10中。实时应用程序也无法从公共数据库获取记录,但没有活动的iCloud帐户,但它在iOS 8和9中工作。 – Madhu

+0

这是生产中的应用程序吗? –

+0

谢谢,这对我有用。 –

0

我遇到同样的问题。一切工作很好,直到iOS10。到目前为止,我发现解决这个问题的唯一方法是让用户在其设备上启用iCloud Drive以获取公共容器中的任何记录。我正在向苹果提交一份错误报告。

相关问题