代码签名权利错误:相同的错误 - 不同的原因
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 8.3.2 错误的包标识符、无效的代码签名标识符和无效的代码签名权利
错误 ITMS-90514:“缺少代码签名权利。在 'Payload/xxx.app/xxx' 中使用 'network-authentication' 后台模式