升级到 OS X 10.9.5 时 iOS 协同设计验证失败 [英] iOS codesign verification failed while upgrading to OS X 10.9.5
问题描述
根据我的 Jenkins 构建日志,我确信在我的 OS X 升级到 10.9.5 时会引发以下问题.<代码>+/usr/bin/codesign --verify -vvvv/Users/dobbymini/jenkins/workspace/DobbyBuild/build/Archive.xcarchive/Products/Applications/Dobby.app程序/usr/bin/codesign 返回 1 : [/Users/dobbymini/jenkins/workspace/DobbyBuild/build/Archive.xcarchive/Products/Applications/Dobby.app: 资源信封已过时]代码设计检查失败:/Users/dobbymini/jenkins/workspace/DobbyBuild/build/Archive.xcarchive/Products/Applications/Dobby.app:资源信封已过时
According to my Jenkins building log, I was sure that the following raised while my OS X upgraded to 10.9.5.
+ /usr/bin/codesign --verify -vvvv /Users/dobbymini/jenkins/workspace/DobbyBuild/build/Archive.xcarchive/Products/Applications/Dobby.app
Program /usr/bin/codesign returned 1 : [/Users/dobbymini/jenkins/workspace/DobbyBuild/build/Archive.xcarchive/Products/Applications/Dobby.app: resource envelope is obsolete
]
Codesign check fails : /Users/dobbymini/jenkins/workspace/DobbyBuild/build/Archive.xcarchive/Products/Applications/Dobby.app: resource envelope is obsolete
我找到了官方文档OS X Code Signing In Depth 提到它与'version 2 signa'的问题有关
I've found the official document OS X Code Signing In Depth mentioned that it was related to the issue of 'version 2 signa'
注意:在运行 OS X Mavericks 时需要对代码进行签名以获得版本 2 签名.实际的代码签名机制是操作系统的一部分,而不是代码签名工具.无法将 Codesign 工具从 Mavericks 复制到较旧的 OS X 版本.
Note: It is necessary to sign code while running OS X Mavericks to get a version 2 signature. The actual code signing machinery is part of the operating system, not the codesign tool. It will not work to copy the codesign tool from Mavericks to an older OS X version.
显然我的操作系统版本足够高,可以使用版本 2 签名.所以应该有这个文件提到的错误
Apparently my OS version is high enough to have the version 2 signature. so there should be something wrong as mentioned by this document
根据对 OS X 10.9 或更高版本的期望构建您的包:
Structure your bundle according to the expectations for OS X version 10.9 or later:
仅在应包含签名代码的目录中包含签名代码.
Only include signed code in directories that should contain signed code.
仅在应包含资源的目录中包含资源.
Only include resources in directories that should contain resources.
不要使用 --resource-rules 标志或 ResourceRules.plist.它们已过时,将被拒绝.
Do not use the --resource-rules flag or ResourceRules.plist. They have been obsoleted and will be rejected.
问题是,我对上述限制知之甚少.有人愿意帮忙提供一些示例吗?我发现此代码更改后应该用于上面的第 3 项.https://github.com/maciekish/iReSign/commit/37b11a43c50afb8e94ca8b2fda192f23d39e7bf3" rel="nofollow">https://github.com/maciekish/iReSign/commit/37b11a483c50afb8e94ca8b2fda192f23d39b9f9f9b9f9f9d
The question is, I have not much idea about the limitation above. Would anybody kindly help to provide some example? This code changed I found should be for the 3rd item above. https://github.com/maciekish/iReSign/commit/37b11a43c50afb8e94ca8b2fda192f23d39e7bf3
推荐答案
这是 Mac OSX 10.9.5 及更高版本的问题.Apple 将在未来版本中修复此问题.
This is an issue with Mac OSX 10.9.5 and later. Apple will fix this in future release.
请参阅我对 xcodebuild - codesign -vvvv 说" 的评论;资源信封已过时"
这篇关于升级到 OS X 10.9.5 时 iOS 协同设计验证失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!