为什么Xcode会自动在钥匙串中安装一个(重复且已过期)的证书?

27

可能重复:
xCode 4 -删除的密钥链证书会被重新安装

这个问题简单明了。

在Xcode中构建项目时,我在“检查依赖项”步骤中收到错误消息:

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个回答

22

我曾经在使用XCode 3 (不是4)时也遇到过同样的问题,但仅仅删除密钥串中旧的证书并不能解决。

我还需要通过组织者(Organizer)删除所有使用旧证书的旧预配文件(provisioning profiles),然后退出XCode,在密钥串中删除旧证书并重新启动XCode。

现在看来一切都正常了!


你太棒了!这个对我有用 :) - Pyro2927
非常感谢!你让我免于繁琐的打开/关闭操作。 - LetBulletFlies
删除其他证书和私钥后,它也对我起作用了!但我想知道如何避免Xcode自动下载这些证书,因为这个问题会再次出现! - Ranganatha G V

4

1

不确定导致这个问题的原因,但有两件事要试试:

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

其次……尽管它不处理证书,但如果你还没有使用iPhone Configuration Utility(http://support.apple.com/kb/dl851)来处理配置文件的部分,你应该使用它-它经常提供Xcode在这个领域的手动修复方法。

哦,第三点(没有人想到是西班牙宗教法庭):如果你检查控制台,它有时会包含与处理证书和签名证书的Xcode命令行工具相关的额外调试/错误信息(包括其他地方看不到的错误消息)。


谢谢!删除所有内容后重新启动,然后手动重新安装证书(我不信任/没有尝试自动安装)解决了问题。很明显,在Xcode 4.3.1中仍然存在配置错误。 - Abhi Beckert

0

删除所有与过期证书相关联的配置文件。

进入配置门户创建新的证书。接着,对于每个配置文件,在编辑页面选择证书复选框并保存,然后重新下载配置文件。


0

为了后人,这里是绕过自动化构建脚本中的问题的策略:

  1. 在构建之前,将~/Library/MobileDevices/Provisioning Profiles目录移开
  2. 检查是否正在运行iPhone配置实用工具并关闭它(如果此应用程序正在打开,则证书始终会重新出现。在XCode 4.1中,您还需要关闭组织者。)
  3. 运行您的构建
  4. Provisioning Profiles目录移回
  5. 收益?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接