The codesign tool requires there only be one - 解决办法
2013-01-22 13:44
267 查看
得益于这个帖子:http://www.cocoachina.com/bbs/read.php?tid=96925
感谢楼主neutyz&cocoachina
症状
Certificate identity 'iPhone Developer: xxxx ho (2J123456HA)' appears more than once in the keychain. The codesign tool requires there only be one.
解决办法
原因是keychain access中存在过期的'iPhone Distribution: xxxx',但没有显示在钥匙链/登录中,而是在钥匙链/系统中,并且是隐藏的,因此需要在钥匙链->显示->显示过期证书,然后把钥匙链下的登录和系统的过期证书都删掉。
而且我在搜寻答案的时候,看到一篇帖子,有可能删除过期证书失败,但是在keychain里面却显示删除成功,这个问题的解决方法是重启keychain,删除,重复这个过程直到真正删除成功。
有时候在keychain里面找不到已过期、多余的证书,但我们在xcode的target的building setting的code signing里面却能够看到多余的证书,这个就证明我们的keychain并没有清楚干净。
总结,解决这个问题的步骤是:1.清掉keychain里面多余的证书。2.刷新xcode里面的provisioning profile。
下面贴出官方的Troubleshooting:
This error indicates that while searching all keychains, Xcode found more than one signing certificate for the same iOS developer program team member, and it does not know which one to use for code signing.
To resolve the problem, use the following process to ensure that there is only one copy of each certificate type: "iPhone Developer" or "iPhone Distribution" within the entire keychain, for the same team member.
In Keychain Access, make sure your "View" menu > Show Expired Certificates option is turned ON
Click the "Certificates" 'Category' and then click through every one of the keychains you have listed in your 'Keychain' sidebar in Keychain Access. If you see any duplicates, even expired certificates, delete those duplicates.
Click the "Keys" 'Category' in Keychain Access.
Navigate through every keychain looking for and deleting any "Orphaned Keys" that have the same Common Name as the affected certificate. Orphaned keys are ones that are not bound by a Disclosure Triangle to an iPhone Developer or iPhone Distribution certificate
that currently exists in the keychain.
If you found and removed any extra keys or certificates, please reattempt your build.
If the issue persists after removing all active or expired duplicate certificates or keys by the same common name, you might try removing *all* existing signing certificates and keys and replace them with new ones using the steps in How do I delete/revoke my
certificates and start over fresh?.
Finally, if the error persists even after creating new certificates, please control-click on the affected certificate in Keychain Access, choose "New Identity Preference" and click the 'Certificate' field. If you see duplicate certificates listed in here, this
is an known and uncommon issue with Keychain Access. To work around the problem, try the following:
Export your developer profile using the process in Transferring Your Identities.
Create a new OS X User Account, install Xcode for the new user and import the developer profile created in the previous step.
posted @ 2012-10-09 11:15 superchao 阅读(47) 评论(0) 编辑
Provisioning
profile XXXX can't be found 的解决办法
摘自:http://blog.chinaunix.net/uid-20676637-id-1641711.html
如果你更新了profile,再编译iphone项目,发现下面的错误,那你无论如何clean也不会成功,那真是让人恼火阿
"Provisioning profile XXXX can't be found"
这 时候,先copy那行出错信息,然后关闭这个项目,打开finder到你的项目文件xxxx.xcodeproj上面按鼠标右键,选择Show Package Contents菜单,在新打开的finder的,找到project.pbxproj,使用一个文本edit打开它,用查找功能找到所有的有那行编码的 位置,删除那一行,至少应该有两个地方
删除以后,保存这个 project.pbxproj 文件,用xcode重新打开你的项目,再编译一下试试
感谢楼主neutyz&cocoachina
症状
Certificate identity 'iPhone Developer: xxxx ho (2J123456HA)' appears more than once in the keychain. The codesign tool requires there only be one.
解决办法
原因是keychain access中存在过期的'iPhone Distribution: xxxx',但没有显示在钥匙链/登录中,而是在钥匙链/系统中,并且是隐藏的,因此需要在钥匙链->显示->显示过期证书,然后把钥匙链下的登录和系统的过期证书都删掉。
而且我在搜寻答案的时候,看到一篇帖子,有可能删除过期证书失败,但是在keychain里面却显示删除成功,这个问题的解决方法是重启keychain,删除,重复这个过程直到真正删除成功。
有时候在keychain里面找不到已过期、多余的证书,但我们在xcode的target的building setting的code signing里面却能够看到多余的证书,这个就证明我们的keychain并没有清楚干净。
总结,解决这个问题的步骤是:1.清掉keychain里面多余的证书。2.刷新xcode里面的provisioning profile。
下面贴出官方的Troubleshooting:
This error indicates that while searching all keychains, Xcode found more than one signing certificate for the same iOS developer program team member, and it does not know which one to use for code signing.
To resolve the problem, use the following process to ensure that there is only one copy of each certificate type: "iPhone Developer" or "iPhone Distribution" within the entire keychain, for the same team member.
In Keychain Access, make sure your "View" menu > Show Expired Certificates option is turned ON
Click the "Certificates" 'Category' and then click through every one of the keychains you have listed in your 'Keychain' sidebar in Keychain Access. If you see any duplicates, even expired certificates, delete those duplicates.
Click the "Keys" 'Category' in Keychain Access.
Navigate through every keychain looking for and deleting any "Orphaned Keys" that have the same Common Name as the affected certificate. Orphaned keys are ones that are not bound by a Disclosure Triangle to an iPhone Developer or iPhone Distribution certificate
that currently exists in the keychain.
If you found and removed any extra keys or certificates, please reattempt your build.
If the issue persists after removing all active or expired duplicate certificates or keys by the same common name, you might try removing *all* existing signing certificates and keys and replace them with new ones using the steps in How do I delete/revoke my
certificates and start over fresh?.
Finally, if the error persists even after creating new certificates, please control-click on the affected certificate in Keychain Access, choose "New Identity Preference" and click the 'Certificate' field. If you see duplicate certificates listed in here, this
is an known and uncommon issue with Keychain Access. To work around the problem, try the following:
Export your developer profile using the process in Transferring Your Identities.
Create a new OS X User Account, install Xcode for the new user and import the developer profile created in the previous step.
posted @ 2012-10-09 11:15 superchao 阅读(47) 评论(0) 编辑
Provisioning
profile XXXX can't be found 的解决办法
摘自:http://blog.chinaunix.net/uid-20676637-id-1641711.html
如果你更新了profile,再编译iphone项目,发现下面的错误,那你无论如何clean也不会成功,那真是让人恼火阿
"Provisioning profile XXXX can't be found"
这 时候,先copy那行出错信息,然后关闭这个项目,打开finder到你的项目文件xxxx.xcodeproj上面按鼠标右键,选择Show Package Contents菜单,在新打开的finder的,找到project.pbxproj,使用一个文本edit打开它,用查找功能找到所有的有那行编码的 位置,删除那一行,至少应该有两个地方
删除以后,保存这个 project.pbxproj 文件,用xcode重新打开你的项目,再编译一下试试
相关文章推荐
- The codesign tool requires there only be one - 解决办法
- The codesign tool requires there only be one - 解决办法
- The codesign tool requires there only be one.问题解决办法
- appears more than once in the keychain The codesign tool requires there only be one
- 解决,Incorrect table definition; there can be only one auto column and it must be defined as a key
- appears more than once in the keychain. The codesign tool requires there onl
- Android Stdio 中的Rendering Problems Android N requires the IDE to be running with Java 1.8 or later Install a supported JDK解决办法
- Hbase运行时出现的问题(There could be a mismatch with the one configured in the master.)及其解决方法:
- eclise 部署web工程报 There are no resources that can be added or removed from the server. 解决办法
- AFNetworking 提示"The resource could not be loaded because the App Transport Security policy requires the use of a secure connection" 解决办法
- 编译报错“a pointer to a bound function may only be used to call the function”的解决办法
- -[UIKeyboardTaskQueue waitUntilAllTasksAreFinished] may only be called from the main thread.【创建键盘监听事件,然后操作键盘(弹出、收回),结果在运行程序时出现如下错误(如有知道解决办法的朋友请留言探讨!)】
- AFNetworking 提示"The resource could not be loaded because the App Transport Security policy requires the use of a secure connection" 解决办法
- Cannot complete the install because one or more required items could not be found解决办法
- ArrayAdapter requires the resource ID to be a TextView 的解决办法
- 【BCB】ocidl.h E2337 Only one of a set of overloaded functions can be ”C“ 报错解决办法
- There are no resources that can be added or removed from the server...解决办法
- 在Eclipse中编写servlet时出现"The import javax.servlet cannot be resolved" 问题解决办法
- ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be def
- 我的Java开发学习之旅------>Workspace in use or cannot be created, choose a different one.--错误解决办法