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

CodeSignle错误:证书身份“iPhone Developer:XXXX(12345678)”在钥匙串中出现多次。 codesign工具要求只有一个。

所以我去我的钥匙链,并删除它。 但是,我每次重新启动Xcode 4时都会出现此错误,而某些应用程序正在将已过期的旧证书添加回钥匙串中。 任何想法为什么和哪个应用程序

我只是有同样的问题。 它已被修复。 它提交了一个应用程序,并安装了几个证书签署应用程序。

快速修复:打开钥匙访问>点击我的证书>在那里你可能会看到iPhone开发者:。 你可能会看到它两次! select具有最早期限的date,右键单击并selectDELETE。

如果没有,请重新启动Xcode。 现在工作。 🙂

快乐的编码。

我想我找出了为什么简单的删除不起作用。 由于开发证书仍然保存在configuration文件中,所以当我删除Keychain中的证书后closures/重新打开Xcode时,我看到旧证书回来。 所以我再次删除它。 有效。

简单的删除configuration文件解决scheme没有为我工作。

解决scheme,在我的情况下工作:

  1. 退出Xcode
  2. 如果钥匙串访问已打开,请保持打开状态。
  3. 现在启动Xcode。
  4. 看到证书Xcode抱怨将从其caching启动时重新添加到钥匙串中。
  5. 继续并删除它。
  6. 编译和快乐的编码。

我只是花了相当多的时间来解决这个问题。 在所有尝试修复它之后,我终于意识到这是Xcode中的一个bug。 这个post给了我一个线索来解决它: 奇迹般地出现在你的钥匙链证书

在我的情况下,匹配的私钥是在系统钥匙串,刚刚有我的名字(很难说它是供应)。 我不得不:

  • 将关联的私钥移至“login”钥匙串
  • 重新启动Xcode,并注意到私钥现在显示为关联(确认它是什么)
  • 删除证书和私钥
  • 重新启动Xcode和poof! 它停止添加我的旧证书

一个有趣的观察是,当你删除证书时,它不会删除相关的私钥。 在视觉上,它显示证书下的私钥。 不要被愚弄。

祝你好运!

好的,find另一个“相关”的问题的答案。 Xcode已过期的证书问题 Xcode 4的已知问题http://openradar.appspot.com/9173280

如果您是iOS开发人员和企业iOS开发人员计划的成员,并且您为两个应用程序input了相同的公司名称,则最终将获得两个具有相同名称的有效分发证书。

我相信这个问题解决了这种情况: 开发者和企业分布之间的CodeSign冲突

我有与xcode45-DP1相同的问题。 这对我有用:

  1. 从钥匙串中删除与您的帐户相关的所有证书。 退出钥匙串

  2. 从xcode删除与您的账户相关的所有configuration文件:organizer:device:Library:provisioning profiles。 退出xcode

  3. 撤销证书并重新生成并下载到您的构build机器

  4. 在下载configuration文件之前,单击“下载”button旁边的“ 编辑”以确保选中您的名称。

  5. 然后下载configuration文件

  6. 双击证书将其安装到钥匙串上

  7. 将configuration文件拖到xcode:organizer:device:Library:provisioningconfiguration文件

  8. 不要点击xcode中的刷新button。

  9. 使构build。

答案就在这里

使用Organizer的旧证书删除所有旧的configuration文件,然后退出XCode,从Keychain中删除旧的证书并重新启动XCode。

看起来像Xcode将保持周围的证书,当你在configuration文件中的引用

我遇到了僵尸证书被重新填充到我的钥匙串和证书身份出现两次的麻烦。 简单地删除重复的证书不起作用。

在Xcode中,当我查看目标代码签名时,我记得我在“Ad Hoc”版本中有一个不同于“发布”版本的分发configuration文件。

当我生成一个新的证书时,我只为Ad Hoc版本下载了一个新的configuration文件,而不是下载版本。

Xcode挂在这两个configuration文件的证书,Xcode因此导致重复的证书…因为我忘了更新我的configuration文件正确。

确保将所有configuration文件更新到新证书,并在Xcode中同时更改所有configuration文件。

请务必使用新证书更新所有供应配置文件,否则Xcode将尝试将两个配置文件的证书放在钥匙串中...导致重复的错误!

我有这个问题,并阅读有关它的每一个信息,最后我find了我自己的解决scheme。 人们没有提及的是, 清理Xcodepipe理器中的证书之前清除钥匙串中过期的密钥之前 ,需要确保您在Provisioning Portal中没有任何过期的证书。 如果您甚至有一个过期的旧应用程序证书过期使用旧的开发人员证书,Xcode将把它拉到其组织者与第一次构build,并从那里它将会去你的钥匙串,并会导致重复。

在我的情况下,Xcode所看到的“caching”是一个附加的iOS设备。 要确定这是否是您的问题:

  1. 断开所有的iOS设备
  2. 从钥匙串访问中删除违规证书和私钥
  3. 重新启动Xcode
  4. 检查钥匙串访问:在我的情况下,重复是不是在这一点上重新创build
  5. 重新连接iOS设备
  6. 重新启动Xcode
  7. 检查钥匙串访问:在我的情况下重复在这一点上重新创build

如果这是你的根本原因,你可以在启动Xcode之前确保你断开iOS设备。

简单地删除冗余证书不适合我。 似乎每次调用xcodebuild时,都是从caching的某个地方“重新创build”钥匙串中的证书…与avi同样的问题我为它创build了一个黑客/修复程序,试图findcaching文件的位置并清除它,但没有运气。 最后,对我有用(有点破解,但嘿,你还能做什么),是要弄清楚证书号码是什么,并且在xcodebuild被调用后不久就手动从keychain中移除它。 首先,进入你的/ usr / bin /目录(或者任何有你的xcodebuild文件的目录,尝试使用which xcodebuild )并运行以下命令:

 sudo mv xcodebuild xcodebuild_actual 

然后使用你最喜欢的编辑器创build一个文件(不要忘记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文件来访问运行这个特定命令而不必input密码。

将-Z上面的hex标识replace为有问题的僵尸证书的hex标识。 最后,确保xcodebuild文件是可执行的:

 sudo chmod 755 xcodebuild 

你现在可以打开你的钥匙链并运行构build命令,并观察有问题的僵尸证书是如何复活的,然后在它成为一个代码签名问题之前,一般性地被枪杀。 希望苹果能为此提出一个真正的解决scheme。

在我的情况下删除证书没有工作。 XCode 4似乎caching或恢复它们。 终于为我工作的诀窍是有keychain和xcode运行。 然后在钥匙串中将我的2个证书(dev + dist)从“login”拖到“系统”。 然后复制品魔术重新出现,我可以删除它们,然后我将证书拖回到“login”

这很容易,将正确的证书导出到您的桌面。 删除钥匙串中的证书。 尝试生成带有错误消息的源文件(没有证书..)然后再次导入证书。 =>成功!

我刚刚删除了我的钥匙串中的一个私钥,用于我不需要的证书。

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

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

我曾经处理过同样的问题。 我已经通过从xcode的Organizer选项卡中删除未使用的configuration文件来解决这个问题。 实际上,钥匙串将从这个供应configuration文件获得证书,该configuration文件是过期证书或通过撤销证书构build。

因此,您只需从“pipe理器”选项卡中删除此configuration文件。 pipe理器在xcode的右上angularbutton打开它,并在pipe理器中删除您不使用的configuration文件。

这是截图,

在这里输入图像说明

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