代码签名权利错误:相同的错误 - 不同的原因

Posted

技术标签:

【中文标题】代码签名权利错误:相同的错误 - 不同的原因【英文标题】:Code signing entitlement errors: Same error-different cause 【发布时间】:2013-10-15 16:58:46 【问题描述】:

我有一个类似于this one 的问题。该解决方案对我不起作用,我怀疑这是因为 Xcode 和 Apple 对我的团队 ID 有不同的想法。

在验证我的应用程序时,我遇到了与引用的帖子相同的两个权利错误。如果我在 developer.apple.com 上的帐户资料中查看团队 ID,它会显示类似于 F65F8MK8HE 的内容。我的钥匙串中的 iPhone 分发证书显示为 S88MMLNF5T。

entitlement 错误说 key value 不被允许,使用 S88MMLNF5T.com.mydomain.myapp。如果我打开存档并查找文件 archived-entitlements-expanded.xcent 它有两行带有团队 ID。如果我将团队 ID 替换为网站上的团队 ID,存档就会生效。这就是为什么我猜测问题在于 Xcode 和 Apple 网站对 Team ID 是什么有不同的想法。我猜我必须删除一些东西才能让它们同步,但从过去删除东西的经验来看,我在不了解需要删除什么的情况下犹豫不决。

我在想我应该删除我钥匙串中的 iPhone 分发证书,让 Xcode 重新生成它需要的东西吗?这听起来合理吗?

与该问题相关,我可以在我的设备上安装应用程序并且它们都可以运行。但是我所有的旧应用程序在启动时都会崩溃。我怀疑这与使用不同团队 ID 的旧应用程序有关。因此,如果我以某种方式让 Xcode 使用新的 Team ID,我是否能够更新商店中的应用而不会崩溃?

这发生在 Mavericks 和 Xcode 5.0 和 5.0.1 上。

【问题讨论】:

【参考方案1】:

我向 Apple Developer Support 询问了这个问题,得到的答复解决了我的问题。它可能也适用于其他人。

基本上,Xcode 中存在一个影响少数开发人员的错误。解决方法是让我的签名部分看起来像这样。

与others 的情况不同,我没有选择特定于应用程序的配置文件,而是选择了我的分发配置文件进行发布。

【讨论】:

【参考方案2】:

如果您正在运行一个旧项目(3.1.5 或更早版本)并迁移到 XCode 5,您将拥有一个手动创建的 Distribution 构建目标,这使得您所指的 Apple 解决方案变得不可能。在answer 我写信给你referring to 的问题我找到了解决方案。 (将链接留给未来的访问者。)

【讨论】:

以上是关于代码签名权利错误:相同的错误 - 不同的原因的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 5“无效的代码签名权利”错误

xcode 8.3.2 错误的包标识符、无效的代码签名标识符和无效的代码签名权利

Xcode-5 验证错误。无效的代码签名权利

错误 ITMS-90164/90046:无效的代码签名权利

Xcode7:无效的代码签名权利

错误 ITMS-90514:“缺少代码签名权利。在 'Payload/xxx.app/xxx' 中使用 'network-authentication' 后台模式