【问题标题】:"Not Authenticated" (9/1002) error while accessing cloud kit public database访问云套件公共数据库时出现“未验证”(9/1002) 错误
【发布时间】:2017-01-24 16:05:21
【问题描述】:

我已经在我的一个 iOS 应用程序中集成了 cloudkit 框架,并且在 iOS 8 和 9 中运行良好,但在 iOS 10 中运行良好。如果没有活动的 iCloud 帐户,它无法从公共数据库中获取记录。如果用户也限制了应用程序的 iCloud 驱动器,则能够在 iOS 8 和 9 中获取记录,但它在 iOS 10 中失败,出现类似

的错误

CKError 0x170249090:“未通过身份验证”(9/1002); “没有后盾 帐户,因此不返回身份验证令牌。”

它不适用于 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];

【问题讨论】:

  • 这个运气好吗?
  • 仍然无法弄清楚。你也面临同样的问题吗?

标签: ios objective-c cloudkit


【解决方案1】:

您需要在模拟器或设备上使用您的 iCloud 帐户登录。它对我有用。

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

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

【讨论】:

  • 我同意你所说的,但它在 iOS 10 中无法正常工作。Live 应用也无法在没有活动 iCloud 帐户的情况下从公共数据库中获取记录,但它在 iOS 8 和 9 中工作。跨度>
  • 这个应用在生产中吗?
【解决方案2】:

我也有同样的问题。在 iOS10 之前一切都很好。到目前为止,我发现解决此问题的唯一方法是让用户在其设备上启用 iCloud Drive 以获取公共容器中的任何记录。我正在向 Apple 提交错误报告!

【讨论】:

    【解决方案3】:

    iOS 10.010.1.1 存在此问题,但已在 iOS 10.2 中解决。

    【讨论】:

      猜你喜欢
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-24
      • 2019-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多