【发布时间】:2014-09-28 07:47:53
【问题描述】:
根据我的 Jenkins 构建日志,我确信在我的 OS X 升级到 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'的问题有关
注意:必须在运行 OS X Mavericks 时对代码进行签名才能获得版本 2 签名。实际的代码签名机制是操作系统的一部分,而不是代码签名工具。将 Codesign 工具从 Mavericks 复制到较旧的 OS X 版本是行不通的。
显然我的操作系统版本足够高,可以拥有版本 2 签名。所以应该有这个文件提到的错误
根据对 OS X 10.9 或更高版本的期望构建您的捆绑包:
仅在应包含签名代码的目录中包含签名代码。
仅在应包含资源的目录中包含资源。
不要使用 --resource-rules 标志或 ResourceRules.plist。它们已过时,将被拒绝。
问题是,我对上述限制不太了解。 有人愿意帮忙提供一些示例吗? 我发现此代码更改应该用于上面的第 3 项。 https://github.com/maciekish/iReSign/commit/37b11a43c50afb8e94ca8b2fda192f23d39e7bf3
【问题讨论】:
-
该问题在 OSX 10.10 中尚未解决。我仍然必须使用“--no-restriction”选项。 :(