xcode Codesign只有在其他xcode iphone项目成功签名后才能成功
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/1890847/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Codesign only succeeds after other xcode iphone project is successfully signed
提问by Nick
I have a weird issue. Codesign refuses to sign this big project I have, project A, but does signs the other, project B. However, when I have signed project B, it also can sign project A all of a sudden. I am 100% certain I didn't change anything else. The steps I took were:
我有一个奇怪的问题。Codesign拒绝签我的这个大项目,A项目,但签了另一个B项目。但是,当我签了B项目时,它也可以一下子签A项目。我 100% 确定我没有改变任何其他东西。我采取的步骤是:
Try to build, sign A - fails on signing
Try to build, sign B - succeeds
Try to build, sign A - succeeds
尝试构建,签署 A - 签署失败
尝试构建,签署 B - 成功
尝试构建,签署 A - 成功
Transcript:
成绩单:
CodeSign build/Debug-iphoneos/CPPlayer.app cd /Users/nick/CPPlayer setenv CODESIGN_ALLOCATE /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /usr/bin/codesign -f -s "iPhone Developer: Nick Overdijk (PM7C8QKTYS)" --resource-rules=/Users/nick/CPPlayer/build/Debug-iphoneos/CPPlayer.app/ResourceRules.plist --entitlements /Users/nick/CPPlayer/build/CPPlayer.build/Debug-iphoneos/CPPlayer.build/CPPlayer.xcent /Users/nick/CPPlayer/build/Debug-iphoneos/CPPlayer.app /Users/nick/CPPlayer/build/Debug-iphoneos/CPPlayer.app: object file format invalid or unsuitable Command /usr/bin/codesign failed with exit code 1
In pictures: See here (imageshack gallery)
在图片中:参见此处(imageshack 画廊)
Is there anything I could've missed? Any ideas how this can happen? I got everything working now and this seems a cure for my problem, but I'd like to understand what is happening.
有什么我可以错过的吗?任何想法怎么会发生?我现在一切正常,这似乎可以解决我的问题,但我想了解发生了什么。
Sometimes it also works like this:
Build/sign A - succeeds
Build/sign A - fails
Build/sign B - succeeds (B always seems to succeed)
Build/sign A - succeeds
Build/sign A - fails
有时它也是这样工作的:
构建/签署 A - 成功
构建/签署 A - 失败
构建/签署 B - 成功(B 似乎总是成功)
构建/签署 A - 成功
构建/签署 A - 失败
So, after every successful build of A, I have to build and sign B to be able to sign project A again. I can rebuild project B any number of times in succession, it always succeeds.
因此,在每次成功构建 A 之后,我都必须构建并签署 B 才能再次签署项目 A。我可以连续多次重建项目 B,它总是成功。
I'm not sure if it matters, but also when I try to run it in the simulator (debug mode for iPhone OS 3.1.2) it fails to install each other time. So:
我不确定这是否重要,但是当我尝试在模拟器中运行它(iPhone OS 3.1.2 的调试模式)时,它也无法相互安装。所以:
Build/run - Fails
Build/run - Works
Build/run - Fails
Build/run - Works
构建/运行 - 构建/运行失败 - 有效
构建/运行 -
构建/运行失败
- 有效
This goes only for Project A, I can build and run project B as many times as I like, I never get the message that the installation failed.
这仅适用于项目 A,我可以根据需要多次构建和运行项目 B,我从未收到安装失败的消息。
Thanks in advance,
Nick
提前致谢,
尼克
回答by Michael
The problem could be too many info.plist files.
问题可能是 info.plist 文件太多。
I had the same problem (alternating codesign success and failure).
我遇到了同样的问题(交替的协同设计成功和失败)。
I had added a directory of source code to my project, with "add existing files" on the directory. Turns out there was a info.plistfile in the directory, so I now had 2 of them in my project. I deleted the new one and removed it from the project, and my problem was solved.
我在我的项目中添加了一个源代码目录,并在目录中添加了“添加现有文件”。原来目录中有一个info.plist文件,所以我现在在我的项目中有 2 个。我删除了新的,从项目中删除,我的问题就解决了。
回答by cdespinosa
Searching for the specific error message
搜索特定的错误信息
object file format invalid or unsuitable
I got these links:
我得到了这些链接:
http://www.galloway.me.uk/2009/04/json-framework-codesign-object-file-format-invalid-or-unsuitable/
http://www.galloway.me.uk/2009/04/json-framework-codesign-object-file-format-invalid-or-unsuitable/
which suggest that your ResourceRules.plist is not set up correctly. That solution seems to have helped a lot of folks with this problem.
这表明您的 ResourceRules.plist 设置不正确。该解决方案似乎帮助了很多人解决了这个问题。
回答by Edmar Miyake
I also was struggling with the 'Command /usr/bin/codesign failed with exit code 1' error message.
我也在努力解决“命令 /usr/bin/codedesign failed with exit code 1”错误消息。
Here is how I solved it
这是我解决它的方法
Right-click on info.plistlook at it's targets. Make sure the box to the left is UNCHECKED. This is the default state.
右键单击info.plist查看它的目标。确保左侧的框未选中。这是默认状态。
Targeting the files don't work fine for the info.plist.
定位文件对 info.plist 不起作用。
回答by John
the issue happened to me, tried every combination of cert, provisioning profile, cleans and restarts, frustrating the damn system doesn't tell you what the issue is. just let me keep guessing. the solution for me was the above referenced article.
这个问题发生在我身上,尝试了证书、配置文件、清理和重新启动的所有组合,令人沮丧的是该死的系统并没有告诉你问题是什么。让我继续猜测。我的解决方案是上面引用的文章。
"Executable name" must match "Product Name"
“可执行文件名称”必须与“产品名称”匹配
really saved me to find this here. thanks.
真的救了我在这里找到这个。谢谢。
回答by Robert
Make sure you don't have more than one Info.plist file in your target!
确保目标中的 Info.plist 文件不超过一个!