被[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]一直返回nil困扰了

3
我编写了一个简单的测试应用程序(Mac/Cocoa),用于连接到iCloud中的键值存储。但我好像在第一道障碍处被卡住了。
您可以在此处查看我的简单应用程序的代码,您会发现我没有从“URLForUbiquityContainerIdentifier”调用中获取到URL。
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    // Insert code here to initialize your application
    NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
    if (!ubiq)
        NSLog(@"No iCloud");
    else
        NSLog(@"Yes iCloud");
}

应用程序运行截图如下:

enter image description here

为了确定我是否正确设置了所有内容,我查看了开发者供应中心中我的应用程序ID(测试应用程序名为Radio)的设置:

enter image description here

看起来没问题。然后我重新创建了我的配置文件(名为Radio Dev 2),并检查它是否使用了正确的应用程序ID:

enter image description here

好的,这也看起来没问题。然后我检查启用了权限和键值容器:

enter image description here

所以它们已经被激活了。然后我查看了文件本身,只是想看看有没有什么异常:

enter image description here

所以在权限文件中,我没有看到任何异常。最后,我确认我正在使用我期望的配置文件签署构建,并使用了正确的证书:

enter image description here

对此我感到很满意。

所以我陷入了困境。我已经重新生成了所有内容,但仍然无济于事。

如果有人有任何想法,我将不胜感激。我有遗漏了什么吗?


3
我需要等待两天才能提供自己的答案,但似乎启用iCloud容器是这段代码能够运行所必需的,即使它并没有被使用。 - Damien
它正在被使用,这就是键值存储所在的地方。 - deleted_user
3个回答

4

对于我来说,Damien在问题上的评论给出了解决方案。对于使用Xcode 4.5的任何人,您需要单击Ubiquity Containers框下面的+。在我这样做之前,什么都没有起作用。

Xcode


0

0

我遇到了同样的问题。我注意到在我的设备设置中,我没有登录我的icloud账户。一旦添加了我的iCloud帐户,问题就解决了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接