在模拟器中保存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;这个设备" (仿真器)。任何想法?答案 0 :(得分:29)
我遇到了同样的问题,我可以通过在模拟器中登录我的iCloud帐户(设置> iCloud)来解决这个问题。
从最新的Xcode开始,您可以在模拟器中登录您的iCloud帐户,一切都应该有效。
如果您在登录时遇到问题,请尝试在桌面上访问iCloud.com并先登录。一旦设置正确,然后尝试在模拟器中。
答案 1 :(得分:4)
我看到了同样的错误。根据下面链接的讨论,原因可能是双因素身份验证。
答案 2 :(得分:2)
因为人们可能误解了批准的答案(正如我所做的),这里有更多细节可以解决这个问题(您可以使用键盘快捷键,但我明确指定了菜单选项):
一旦你这样做,你就可以继续进行构建和运行。
答案 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!