我的问题是选择了apns证书。
一下转自:http://blog.sina.com.cn/s/blog_85c1f6a50100zxz1.html
想发布到真机,确总出现这样的错误,本来以为是证书过期了,又重新下载了一份,还是这个错误,在网上查了好多解决方法但都没有解决我的问题,我本来安装的是xcode4.2但是新版本跑不起来我原来的程序(里面有大量C++代码的原因),所以我又安装回以前的3.2.5版本,结果运行出现这个错误。
解决过程(相当坎坷):
1.重新下载证书
在网上查到了这个解决方法:http://blog.csdn.net/kmyhy/article/details/6640933
原文:
前日,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 的证书,显然导证书的时候不知道怎么把证书导进了系统帐号,并且还重复了。把这两个证书删除,关闭钥匙串,问题解决。
看了这篇文章,我就检查了我的钥匙串,没发现重复的地方,怀疑是不是有的文件隐藏了?就把所有的证书都删除了,又重新创建了一遍,结果还是这个错误,看来这个解决方法不适合我。
2. 因为我的xcode是覆盖安装的(开头已经说了重新安装的原因),所以怀疑是覆盖安装时有些东西没安装上或者是原来版本的东西没删掉,所以在网上查到了一个命令可以完全删除xcode:
完全删除XCode命令:
sudo /Developer/Library/uninstall-devtools --mode=all
如果安装过xcode可以在Developer目录中的about xcode.png中找到这个命令,还有相关命令感兴趣的朋友可以研究下。
这条命令可能出现删除不完整的情况,有个办法是把Developer删除,然后创建一个文件夹named为Developer,然后重启电脑。
最好你可以安装xcode。
实在没办法了,又重新删除,安装,运行,结果还是这个错误,崩溃~~
3. 试过各种方法:http://archive.cnblogs.com/a/1728677/
如果你在编译iPhone App的时候遇到command /usr/bin/codesign failed with exit code 1
可 以确认以下的步骤,打开Keychain Access,找到你的开发者key,Get Info,看一下Access Control这个Tab,选择allow all applications to access this item。再重新编译一下,试一下,看看是否OK了
不用说结果还是不行。。。。。
4.http://blog.csdn.net/ba_jie/article/details/6860237
安装两个Xcode真是麻烦。在用Xcode 3.2.5编译版本的最后阶段——CodeSign的时候,出现了大意为:
object file format unrecognized, invalid, or unsuitable
/usr/bin/codesign failed with exit code 1
这样的错误。
最后还是在StackOverflow上找到了答案。用下面的命令:
sudo mv /usr/bin/codesign_allocate /usr/bin/codesign_allocate_old (我不需要。因为两个Xcode冲突,谁都没有给我一个codesign_allocate到该目录)
sudo ln -s /DeveloperXcode4/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate /usr/bin
解决了问题。如下图:
注:我的Xcode 3.2.5安装到了DeveloperXcode4目录下。
找到了这个方法,研究发现我也是这个问题,程序找不到codesign目录,手动找到codesign目录然后通过终端配置一下就可以了。问题终于解决了
暂时就碰到这些问题,欢迎补充~~