该应用程序缺少必需的权利com.apple.developer.icloud-services'

时间:2015-09-22 22:51:34

标签: ios icloud ios9 cloudkit

我在我的应用程序中使用了一个公共的iCloud数据库,该数据库效果很好并且在商店中使用。

在将我的应用更新为新版本(在iOS9上使用Xcode 7)时,我遇到了崩溃:

CKContainer * container = [CKContainer containerWithIdentifier:@"iCloud.com.identifier"];

*** Terminating app due to uncaught exception 'CKException', reason: 'The application is missing required entitlement com.apple.developer.icloud-services'

这只发生在更新后首次启动应用程序,仅在iOS9上启动。在第一次(更新)启动之后,应用程序启动并且iCloud按预期工作。

我可以通过下载应用程序的当前商店版本,然后从Xcode 7运行更新的应用程序来一致地重新创建崩溃。

如果我使用iOS8执行相同的步骤(下载生产应用程序和更新),我没有同样的崩溃。

我猜这是一个iOS9或Xcode 7错误。有任何想法吗?

编辑: 这实际上发生在iOS9上首次启动应用程序时,无论我是更新还是只是首次安装。

7 个答案:

答案 0 :(得分:8)

切换iCloud对我不起作用。重新安装应用程序也不起作用。每当我启用断点时,问题似乎就会发生。如果我关闭它,它会毫无问题地运行。

答案 1 :(得分:7)

打开和关闭iCloud功能似乎已经修复了它。

答案 2 :(得分:3)

Xcode 11.1

确保已为 debug release 模式启用了它: enter image description here

答案 3 :(得分:1)

对于我来说,关闭/打开iCloud功能是修复它的方法,因为在权利文件中创建了一个新密钥:" APS环境"及其价值"生产"或"部署"。

答案 4 :(得分:0)

更改了我的应用名称,因此权利文件应该不同。关闭然后重新创建所需的文件。关闭断点使其过滤(奇怪)。

答案 5 :(得分:0)

对我来说,我为我的测试目标指定了代码签名权利。所以该应用程序将建立良好。但无论如何,单元测试都会退出。从测试目标的构建设置中清除代码签名权利字段修复了该问题。后。许多。小时。

答案 6 :(得分:0)

切换到新版本的Xcode后,出现此错误。其他修复均无效。仔细查看后,我发现代码签名身份已更改!当我把它放回原处时。