保存CloudKit记录“未经过身份验证”(9/1002)“”此请求需要经过身份验证的帐户“”

时间:2014-10-08 09:23:31

标签: ios cloudkit

在模拟器中保存CKRecord会出现以下错误:

                [publicDatabase saveRecord:cloudRouteEntity
                     completionHandler:^(CKRecord *record, NSError *error) {
                         if (error) {
                             NSLog(@"An error occured in %@: %@", NSStringFromSelector(_cmd), error);
                             abort();
                         } else {

                             dispatch_async(dispatch_get_main_queue(), ^(void) {
                                 //gui
                                 NSLog(@"Created Cloudkit Entity");

                             });
                         }
                     }];

然而,它适用于手机。为什么模拟器无法访问CloudKit数据库?

编辑:我认为通过将iCloud帐户添加到模拟器中我很聪明 - 但是iCloud呻吟说这是不允许的#34;这个设备" (仿真器)。任何想法?

7 个答案:

答案 0 :(得分:29)

我遇到了同样的问题,我可以通过在模拟器中登录我的iCloud帐户(设置> iCloud)来解决这个问题。

从最新的Xcode开始,您可以在模拟器中登录您的iCloud帐户,一切都应该有效。

如果您在登录时遇到问题,请尝试在桌面上访问iCloud.com并先登录。一旦设置正确,然后尝试在模拟器中。

答案 1 :(得分:4)

我看到了同样的错误。根据下面链接的讨论,原因可能是双因素身份验证。

https://discussions.apple.com/thread/6588883

答案 2 :(得分:2)

因为人们可能误解了批准的答案(正如我所做的),这里有更多细节可以解决这个问题(您可以使用键盘快捷键,但我明确指定了菜单选项):

  1. 运行模拟器(Xcode) - 在模拟器中运行Xcode中的应用程序 选择产品>运行
  2. 应用程序主屏幕(模拟器) - 在模拟器中,导航到 通过选择硬件>主屏幕;家
  3. 设置应用(模拟器) - 找到设置应用(齿轮),运行它 选择iCloud
  4. 验证(模拟器) - 输入您的凭据并登录(或 如果您的凭据已更改,请重新登录iCloud。一旦你这样做了 这可以重新运行你的应用程序,它应该正确验证到 icloud的
  5. 一旦你这样做,你就可以继续进行构建和运行。

答案 3 :(得分:1)

完全重置模拟器(确保没有留下任何东西),重新安装它。也许你有一个错误的位版本?如果可能,请尝试在其他PC或笔记本电脑上使用。

我测试了它,我能够连接到iCloud所以我非常确定它的设置/错误安装等。

答案 4 :(得分:1)

我有类似的问题,除非我登录iPad Retina iOS8.1.1上的设置应用/ iCloud部分

答案 5 :(得分:1)

我遇到了同样的问题。

我在用户记录中添加了一个id查询索引,当我删除此索引时,问题就停止了。

我甚至不知道这些事情之间的关系是什么,但它对我有用。

抱歉英文不好

答案 6 :(得分:0)

我的应用程序的一个用户遇到了完全相同的问题,但他已正确登录到 iCloud 并且还启用了 2 因素身份验证。但是,iCloud Drive 的开关在他的 iCloud 设置中被关闭,显然这导致了问题!

我认为这很奇怪,因为 CloudKit 本身不使用 iCloud Drive 并且我的应用程序的开关已打开,但我猜苹果突然要求为 CloudKit 也打开 iCloud Drive?

编辑: 这也发生在另外 2 个用户身上,对于这两个用户,解决方案是打开 iCloud Drive!