代码签名错误:证书身份在密钥链中出现多次

时间:2012-03-05 14:00:38

标签: objective-c code-signing provisioning-profile

  

可能重复:
  Code Sign error: Certificate identity 'iPhone Developer: My Name (xxx)' appears more than once in the keychain

我们有两个不同的开发者帐户(一个用于商店,一个用于企业)。企业帐户来得晚了。长篇故事

它们由两个不同的电子邮件/帐户管理。

我正在尝试允许一个具有两个不同目标的XCode项目根据我是在进行商店构建还是在企业构建中为任一帐户签署我们的应用程序。问题是我从标题中收到错误消息。

它们是具有不同私钥的单独证书,因此我不明白为什么它们不能共存以及为什么XCode无法区分它们。

有什么办法可以在XCode中使用这些不同的证书/配置文件有两个不同的目标吗?

更新:根据我的评论,我能够为任一目标签署应用程序,但现在当我开始制作IPA时,我收到来自两个不同钥匙串的模糊证书的错误。 谢谢!

2 个答案:

答案 0 :(得分:15)

以下是Lion版本对我有用的内容。 10.7.3使用XCode 4.3.1,并且比回滚到4.2更加痛苦!

在Keychain Access中,确保您的“查看”菜单>显示过期证书选项已打开。

点击“证书”“类别”,然后点击您在钥匙串访问的“钥匙串”侧栏中列出的每一个钥匙串。如果您看到任何重复项,甚至是过期的证书,请删除这些重复项。

点击钥匙串访问中的“密钥”“类别”。

浏览每个钥匙串,查找并删除与受影响的证书具有相同公共名称的任何“孤立密钥”。孤立密钥是不受Disclosure Triangle绑定到iPhone开发人员或iPhone分发证书的密钥,目前存在于密钥链中。

如果您找到并删除了任何额外的密钥或证书,请重新尝试构建。

在此之后,这对我有用 - 但如果它不适合你,请包括Apple下面的部分。

如果在使用相同的公用名删除所有活动或过期的重复证书或密钥后问题仍然存在,您可以尝试删除所有现有签名证书和密钥,并使用以下步骤将其替换为新证书和密钥。如何删除/撤销我的证书并重新开始?

最后,如果在创建新证书后错误仍然存​​在,请在Keychain Access中按住Control键并单击受影响的证书,选择“新身份首选项”,然后单击“证书”字段。

如果您在此处看到重复的证书,则这是Keychain Access的一个已知且不常见的问题。

要解决此问题,请尝试以下操作: 使用“传输您的身份”中的过程导出您的开发人员配置文件。 创建一个新的OS X用户帐户,为新用户安装Xcode并导入在上一步中创建的开发人员配置文件。

答案 1 :(得分:3)

对我来说同样的问题。续订证书(开发和分发)后

要解决此问题,请转到钥匙串工具并按照后续步骤进行操作

  1. 查看 - >显示过期的证书
  2. 选择KeyChain系统
  3. 选择类别所有项目
  4. 您应该会看到某些证书已过期,只需将其删除并重建即可。

    希望有所帮助