我收到错误证书标识在密钥链中出现不止一次

时间:2011-04-11 06:09:16

标签: iphone

当我收到此错误时,我在我的组织者窗口中检查并在我的名字中发现了一个重复的身份我试图在我的组织者窗口中删除重复的身份。但我无法选择或删除它。请帮我删除这个重复的身份。

11 个答案:

答案 0 :(得分:74)

您的证书存储在您的钥匙串中。只需打开钥匙串并查找副本,然后 重新启动 XCode。

答案 1 :(得分:25)

我遇到了一个问题,即即使我在KeyChain Access上删除旧证书也会重新出现。解决方案是删除使用XCode管理器中的旧证书的所有配置文件。

答案 2 :(得分:13)

打开Keychain Access。 在窗格左下方的“类别”下,您应选择“我的证书” 在主窗格中,您将看到重复的证书。如果一个无效,它上面也会有一个红色的X.删除它,重新启动Xcode,你就可以了。

答案 3 :(得分:8)

在“Keychain Access”程序的“查看”菜单下,选择“显示过期的证书”(如果菜单项显示“隐藏过期的证书”,那么您已经在显示它们)。然后,检查左侧列表中的每个钥匙串以获取重复的证书。此外,对于每个钥匙串,请务必查看“证书”“我的证书”(如果有)。

答案 4 :(得分:5)

Xcode 4.3现在搜索所有钥匙串以签署证书,但这会增加构建错误的频率:

  

证书身份(x)在钥匙串中出现多次......

Apple解决问题的步骤如下: “How do I resolve the CodeSign error: Certificate identity appears more than once in the keychain?

但是,如果您受到该指南最后说明中提到的钥匙串错误的影响,以下是更简单且首选解决问题的方法:

1)钥匙串访问>编辑>钥匙串列表,取消选中登录钥匙串的“共享”。

2)接下来,如果回到钥匙串列表,您会发现登录钥匙串仍然标记为已共享,创建以下文件的备份,如果存在则将其删除:

/Library/Preferences/com.apple.security-common.plist
~/Library/Preferences/com.apple.security.plist

3)重试您的构建。

答案 5 :(得分:2)

升级到XCode 4.3之后我遇到了这个问题。构建过程一直失败,在KeyChain Access中,我确信我只有一个开发证书。关于如何解决它,网上没有太多帮助,但我设法用以下方法绕过它。请注意,我不知道这是否适用于较旧版本的Xcode,但最好的办法是让Xcode处理整个过程。

首先要检查你是否确实有重复的证书。

打开终端并输入以下命令:

 sudo /usr/bin/security  find-certificate -a -Z -c "iPhone Developer" | grep SHA-1

如果您看到多个相同的SHA-1哈希值,那么您确实有重复项,我们需要删除它们。

在KeyChain Access中(我没有验证这一点,但可能没有必要执行此步骤):

  1. 创建一个新的KeyChain - 我称之为login-new
  2. 在Keychains窗格中选择新的钥匙串。
  3. Go File-> make keychain“login-new”default
  4. 在XCode Organizer中:

    1. 在“设备”窗格中,删除所有配置文件
    2. 在开发者配置门户中:

      1. 撤销您的开发和分发证书
      2. 返回XCode Organizer:

        1. 您应该有一个空白的配置文件列表
        2. 点击“刷新”按钮
        3. XCode会提示您登录您的开发者帐户,然后它会询问您是否要生成开发和分发证书,因为它找不到任何证书。
        4. 继续并生成它们。
        5. 返回终端并从上面重新输入find-certificate命令。你现在不应该看到任何重复。

          下一步是修复您的配置文件。因此,请转到配置门户并修改每个配置文件。回到Xcode组织者并点击刷新按钮。

          配置文件出现后,您需要在Build Settings中重新关联Code Signing Identities,以确保不会出现代码签名错误。

          您的应用现在应该在您的设备上构建并运行。

答案 6 :(得分:2)

我的情况,我试着只看一下登录钥匙串没有成功。当我打开系统钥匙串时,我发现有旧的(过期的)证书并且它是重复的。 删除重复的证书后,一切正常。

答案 7 :(得分:0)

有同样的问题,但删除过期的证书无济于事,它在Xcode启动的那一刻再次弹出!

在Keychain Access中,在最左边的窗格中,在Category下面有" My Certificates",还有另一个条目:" Certificates"。我从"我的证书"中删除了证书,但没有查看"证书"。从"证书"中删除(过期的)证书我也解决了这个问题。

答案 8 :(得分:0)

如果在删除违规证书后仍然无法解决问题,请尝试执行Product > Clean。就我而言,即使在系统重启后也是如此。

答案 9 :(得分:0)

即使删除了副本,我仍然会收到此错误。最后我做了以下事情:

  1. 打开Keychain Access并删除重复的证书(只需保留 来自My Certificates&的最新一个) Certificates部分
  2. 转到密钥并检查私钥是否存在,没有公钥,如果是,请将其删除。
  3. 然后重启Xcode。
  4. 这解决了我的问题。

答案 10 :(得分:0)

在我的情况下,隐藏的过期证书是重复的。以上提示证明有用!