为什么Xcode会在钥匙串中自动安装(重复和过期)证书?

时间:2011-03-17 07:02:19

标签: iphone xcode build certificate keychain

  

可能重复:
  xCode 4 -reinstalls keychain certs that I delete

这个问题简单地说明了一切。

在Xcode中构建项目时,我收到来自Check dependencies步骤的错误消息:

CodeSign error: Certificate identity 'iPhone Developer: xxxxx' appears more than once in the keychain. The codesign tool requires there only be one.

问题是,每当启动Xcode时,都会重新安装此证书标识。它也是一个过期的证书,会造成额外的混乱。所以我在钥匙串中删除它,并构建项目,一切正常。

退出Xcode,重新启动,观看Keychain和TA-DA!过期的证书重新出现。

我觉得我又回到了受病毒感染的Windows机器上。

由于项目在删除证书时正确构建和执行,唯一的问题是xcode的自动安装。


编辑:

我认为无论出于什么原因,它都必须与xcode对钥匙串的检查有关。然后xcode决定根据其对钥匙串的检查来安装证书,尽管这是一个错误的决定。如果我花了24-48小时,我可以解决这个问题,但我能够继续工作,而不会退出Xcode。 :)

5 个答案:

答案 0 :(得分:22)

我对XCode 3(而不是4)有相同的经验,只删除Keychain中的旧证书是行不通的。

我还使用管理器添加使用旧证书删除所有旧配置文件,然后退出XCode,从Keychain中删除旧证书并重新启动XCode。

现在它似乎工作正常!

答案 1 :(得分:4)

您可能想尝试xCode 4 -reinstalls keychain certs that I delete

中的解决方案

亲切的问候,弗兰克

答案 2 :(得分:1)

不确定是什么原因造成这种情况,但要尝试两件事:

首先...... Xcode历来在这方面有一些错误只能通过退出Xcode,删除钥匙串中的东西,重新启动OS X 来解决(真的 - 不知道XCode中可以存活的是什么一个应用程序重新启动,但我已经看到它发生了),然后重新启动XCode。我一年多没见过这些,但可能是一个回归错误?

其次......虽然它不处理证书,但如果你还没有,你应该使用iPhone配置实用程序(http://support.apple.com/kb/dl851)作为配置文件部分,如果可能的话 - 它经常为此区域中的Xcode错误提供手动修复。

哦,第三(没有人期待西班牙语的调查):如果您检查Console,它有时会包含Xcode中处理证书和证书签名的命令行工具的额外调试/错误信息(包括其他地方没有出现的错误消息)

答案 3 :(得分:0)

从管理器中删除所有过期证书所需的配置文件。

转到配置门户创建新证书。在此之后,对于每个配置文件,通过选择编辑页面上的证书复选框进行编辑并保存,然后重新下载配置文件。

答案 4 :(得分:0)

对于后人,这是在我们的自动构建脚本中解决此问题的策略:

  1. 在构建之前,将〜/ Library / MobileDevices / Provisioning Profiles 目录移到一边
  2. 检查 iPhone配置实用程序是否正在运行并关闭它(如果此应用程序处于打开状态,则会再次出现证书。在XCode 4.1中,您还需要关闭管理器。)
  3. 运行构建
  4. 移回配置文件目录
  5. 利润?