20

在模拟器中保存 aCKRecord会给我以下错误:

[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 抱怨说“此设备”(模拟器)不允许这样做。任何人的想法?

4

7 回答 7

35

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

从最新的 Xcode 开始,您可以在模拟器中登录您的 iCloud 帐户,一切正常。

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

于 2015-07-04T17:01:34.307 回答
4

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

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

于 2014-11-12T08:03:02.253 回答
3

因为人们可能会误解批准的答案(就像我所做的那样),所以这里有一些更详细的信息来解决这个问题(您可以使用键盘快捷键,但为了清楚起见,我指定了菜单选择):

  1. 运行模拟器 (Xcode) - 通过选择 Product > Run 从模拟器中的 Xcode 运行应用程序
  2. 应用主屏幕(模拟器)- 在模拟器中,通过选择硬件 > 主页导航到主屏幕
  3. 设置应用程序(模拟器) - 找到设置应用程序(齿轮),运行它并选择 iCloud
  4. 验证(模拟器)- 输入您的凭据并登录(如果您的凭据已更改,则重新登录)到 iCloud。完成此操作后,您可以重新运行您的应用程序,它应该正确地向 iCloud 进行身份验证

一旦你这样做了,你就可以进行未来的构建和运行。

于 2017-02-10T23:22:09.487 回答
1

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

我对其进行了测试,并且能够连接到 iCloud,所以我很确定它与您的设置/错误安装等有关。

于 2014-10-17T15:50:29.537 回答
1

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

于 2015-02-03T20:42:27.673 回答
1

我遇到了同样的问题。

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

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

抱歉英语不好

于 2015-06-21T19:06:56.683 回答
0

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

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

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

于 2021-04-23T09:36:58.523 回答