代码改变世界

一个签名错误的解决——codesign failed with exit code 1

2011-07-28 14:26  乱世文章  阅读(963)  评论(0编辑  收藏  举报

前日,Macbook的硬盘不幸挂了,于是将开发环境迁移到Mac Mini下。大家知道,对于Xcode来说,最麻烦的就是各种证书、ProvisioningProfile的配置问题。将原来的各种开发证书和.p12证书导入到mini上,接下来就碰到了各种莫名其妙的问题。先是无法development(可以debug),发现是证书导错了(没有用Agent证书,只有Agent可以发布)。于是制作证书请求,重新下载证书。

等到部署的问题解决后,又发现无法调试——真机可以,但模拟器不行,一进入程序就退出,不报任何错误。试了各种招数都不行,怀疑是模拟器问题。于是卸了Xcode重装。重启后问题解决。

但又出现新的问题。模拟器可以调试程序了,真机调试可以编译,但无法运行,报错codesign failded with exit code 1。网上查了下资料,没解决问题。

后来打开错误日志发现下列描述:

iPhone Developer: Hongyan Yang (GNF23CPXYK):ambiguous (matches "iPhone Developer: Hongyan Yang (GNF23CPXYK)" in/Users/km-cn/Library/Keychains/login.keychain and "iPhone Developer:Hongyan Yang (GNF23CPXYK)" in /Library/Keychains/System.keychain)

Command/usr/bin/codesign failed with exit code 1

原来是钥匙串系统帐号和登录帐号中的证书冲突了。打开钥匙串,查看登录帐号中的开发者证书(注意identifier为 GNF23CPXYK 的证书):


查看系统帐号下也有两个identifier为GNF23CPXYK 的证书,显然导证书的时候不知道怎么把证书导进了系统帐号,并且还重复了。把这两个证书删除,关闭钥匙串,问题解决。