我已经编写了一个简单的测试应用程序(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");
}
输出运行的应用程序的屏幕截图:
在尝试查看是否所有设置都正确时,我查看了开发人员资源调配中心中应用程序ID(测试应用程序称为radio)的设置:
所以看起来没问题。然后我重新创建了我的设置配置文件(称为radio dev 2),并检查它是否使用了正确的应用程序ID:
好吧,看来也没问题。然后我检查了权限是否开启,键值容器被激活:
所以它们被激活了。然后我看了一下文件本身,看看是否有什么东西跳出:
所以我在权利档案里看不到任何东西在向我跳来跳去。最后,我确认我正在使用预期的配置文件使用正确的证书对生成进行签名:
我对此很高兴。
所以我被难住了。我把所有的东西都再生了,等等,都没有用。
如果有人有什么想法,我将不胜感激。我错过什么了吗?
最佳答案
达米恩对这个问题的评论为我找到了解决办法。对于使用Xcode4.5的任何人,您需要单击Ubiquity容器框下面的+号。在我做之前,一切都没用。
关于objective-c - 指出[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil]一直返回nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11938231/