NSUbiquitousKeyValueStore不与iCloud同步

tom*_*Dev 6 ios icloud nsubiquitouskeyvaluestore

我已经尝试了所有内容并阅读了所有主题,但我无法找出为什么NSUbiquitousKeyValueStore没有存储在iCloud上.

•创建了特定的应用程序ID

•为此App ID启用了iCloud

•创建供应配置文件

•在项目上启用iCloud

•将权利设置为键值:$(TeamIdentifierPrefix)$(CFBundleIdentifier)

•打开设备上的iCloud Drive

但NSUbiquitousKeyValueStore仅在本地保存.当我重新安装应用程序时,它不会从iCloud获取信息.

这是我正在尝试的方式:

    NSUbiquitousKeyValueStore *cloudStore = [NSUbiquitousKeyValueStore defaultStore];

if ([[cloudStore stringForKey:@"testString"] length] == 0) {
    NSLog(@"Nothing in iCloud - setting a value...");
    [cloudStore setString:@"I'm live in iCloud!" forKey:@"testString"];
    [cloudStore synchronize];
    [[NSUbiquitousKeyValueStore defaultStore] synchronize];

} else {
    NSString *result = [cloudStore stringForKey:@"testString"];
    NSLog(@"Found something in iCloud - here it is: %@", result);
}

[self registerForiCloudNotificatons];
Run Code Online (Sandbox Code Playgroud)

如果我删除应用程序或尝试新设备,它在iCloud上找不到任何内容.

所以我试着找出iCloud是否正常工作:

    NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
if (ubiq) {
    NSLog(@"iCloud at %@", ubiq);

} else {
    NSLog(@"No iCloud access, %@", ubiq);
}
Run Code Online (Sandbox Code Playgroud)

这总是返回"没有iCloud访问",我无法弄明白为什么.无论我做什么,URLForUbiquityContainerIdentifier总是返回nil.

我在支持iCloud的iOS 8设备上运行.

我错过了什么吗?

谢谢!

小智 7

我曾经也有过一样的问题。我是这样解决的:

  1. 卸载应用程序
  2. 重新启动设备
  3. 安装应用程序

无需登录和退出 iCloud。


r-d*_*ent 5

我有同样的问题。在设备上注销并重新登录我的 iCloud 帐户也为我解决了这个问题。

当您启用 iCloud 权利之前在设备上安装了具有相同捆绑标识符的应用程序时,似乎会出现此问题。我在 2 个测试设备上遇到了这个问题。我第一次在启用 iCloud 的情况下安装该应用程序的第三台设备没有出现任何问题。