代码签名错误:证书身份出现两次。

103

代码签名错误:证书标识 'iPhone Developer: XXXX (12345678)' 在密钥链中出现多次。codesign 工具要求只有一个。

所以我进入我的密钥链并将其删除。但每次我重新启动 Xcode 4 并且某个应用程序将过期的旧证书添加回到密钥链中时,我都会遇到此错误。有什么想法是哪个应用程序导致的吗?


可能是Xcode过期证书问题的重复。 - zoul
15个回答

0

我刚刚在我的密钥链中删除了一个证书的私钥,因为我不再需要它。

即使证书重新出现,但私钥不会重新出现。现在检查有效证书,只会出现一个证书,而其私钥被删除的其他证书将不再显示在有效证书下面。

我认为这是解决此问题的最简单方法。


0

我曾经也遇到过同样的问题。我通过从xcode的组织者选项卡中删除未使用的配置文件来解决它。实际上,Keychain将从此配置文件获取证书,该证书可能是已过期的证书或被撤销的构建证书。

因此,您只需从组织者选项卡中删除此配置文件即可。组织者位于xcode右上方的按钮上,打开它,然后删除您不使用的配置文件。

这是截图:

enter image description here

不要忘记从钥匙串中删除额外的证书,但之后这些证书就不会再出现了。


0

简单地删除多余的证书对我没有用。每次调用xcodebuild时,它似乎都会从某个缓存中“重新创建”密钥链中的证书...与avi遇到的问题相同。我为此创建了一个hack/修复程序,试图找到文件被缓存的位置并清除它,但没有成功。最终,对我有用的是(有点hack,但嘿,还能做什么),找出证书编号,并在xcodebuild调用后不久手动将其从密钥链中删除。首先,转到您的/usr/bin/目录(或具有xcodebuild文件的任何目录,请尝试which xcodebuild)并运行以下命令:

sudo mv xcodebuild xcodebuild_actual

然后使用您喜欢的编辑器(不要忘记sudo)创建一个文件,并添加以下代码:

xcodebuild_actual $* &
echo "xcodebuild started, waiting to wipe certificate, 10 seconds"
sleep 2
echo "Wiping Certificate..."
sudo security -v delete-certificate -t -Z 407629F811D52C0BB7AD31BBB18DCB496354B05E

注意:您需要修改sudoers文件以便在无需输入密码的情况下运行此特定命令。
将上面-Z后面的十六进制标识替换为有问题的僵尸证书的十六进制标识。最后,请确保xcodebuild文件是可执行的。
sudo chmod 755 xcodebuild 

你现在可以打开你的钥匙串并运行构建命令,然后观察那个有问题的僵尸证书如何复活,然后在它成为代码签名问题之前被迅速地摧毁。希望苹果公司能够想出一个真正的解决办法。

0
在我的情况下,删除证书并没有起作用。XCode 4似乎会缓存或还原它们。最终对我有用的技巧是让钥匙串和Xcode同时运行。然后在钥匙串中将我的2个证书(dev+dist)从“登录”拖到“系统”中。然后重复的证书就神奇地重新出现了,我就能够删除它们,然后再将证书拖回到“登录”。

0

非常简单,将正确的证书导出到您的桌面。在钥匙串中删除该证书。尝试使用错误消息构建源代码(没有证书..)然后再次导入证书。 => 成功!


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