Ubiquity容器,权利和代码签名的问题彼此之间并不好玩

时间:2011-11-05 02:52:03

标签: cocoa icloud

我正在努力将iCloud支持添加到我的收入跟踪应用程序myIncome中,该应用程序目前在Mac App Store中作为1.0版本,并且在1.0版本中可以正常工作。

我只添加了代码来获取普遍容器并将所选文件上传到iCloud。目前我正在使用一个块来查看iCloud是否可用于验证发送文件的菜单项。

if ([[NSFileManager defaultManager] URLForUbiquityContainerIdentifier: container] == nil) return NO;
    return YES;

我已将关键字添加到权利文件中,并为其中包含iCloud活动的应用程序提供开发配置文件。

如果代码签名处于开启状态,我会在Console.app中收到这些消息,调试器会在runtime_init EXC_BAD_INSTRUCTION中停止{/ 1}

11/4/11 6:52:49.952 PM taskgated: none of the 2 applicable provisioning profile(s) apply
11/4/11 6:52:49.952 PM taskgated: killed com.themikeswan.myIncome[pid 13532] because its use of the com.apple.developer.ubiquity-container-identifiers entitlement is not allowed

如果我关闭代码签名(并清理项目),当我尝试获取ubiquity容器并且Console.app显示以下消息时,我回到零:

11/4/11 10:38:03.549 PM librariand: client process 13863 does not have a valid com.apple.developer.ubiquity-container-identifiers entitlement
11/4/11 10:38:03.550 PM librariand: error in handle_container_path_request: LibrarianErrorDomain/9/The client process does not have a valid com.apple.developer.ubiquity-container-identifiers entitlement

我已经制作了一个小型测试应用程序,它是一个核心数据应用程序,并且具有支持iCloud的应用程序ID,并且使用相同的代码,一切正常,因此myIncome中显然存在一些冲突,我只是不确定在哪里寻找问题

是否有其他人遇到过类似的问题,或者有任何想法在哪里看?

一旦我让iCloud在myIncome工作,我计划为每个人编写一个教程,以便从这些知识中受益,因为几乎没有关于如何将iCloud添加到Mac应用程序的信息。

1 个答案:

答案 0 :(得分:0)

原来答案是删除应用程序的容器。 ~/Library/Containers/<yourBundleID>

修改 这是窗口部分的图像,显​​示完整路径和其中的一些容器。enter image description here