代码签名资源规则path在Jenkins CODE_SIGN_RESOURCE_RULES_PATH上失败

我很less关心人们如何对待以下问题。

基本上这听起来像“与ResourceRules.plist: cannot read resources生成失败jenkinsResourceRules.plist: cannot read resources

我的情况是:

1)jenkins

2)在本地我工作在Xcode 7testing版(在一个单独的分支)

3)我的队友在6.4.1工作,对他们来说一切正常

4)jenkins奴隶安装Xcode 6.4.1

你们中的一些人会说:“这个问题被问了数百万次”,就像这里 , 在 这里 , 在这里 。

但是 文档说明如下:

资源规则

OS X Mavericks v10.9之前的系统logging了一个签名function(–resource-rules)来控制捆绑包中的哪些文件应该由代码签名进行封装。 这个function已经被小牛淘汰了。 代码签名在小牛和后来总是密封所有文件的捆绑; 没有必要再明确指出这一点。 这也意味着Xcode中的代码签名资源规则path构build设置应该不再使用,并应保留为空。

所以我的问题是为什么每个人都快速绕过,破解,解决这个问题,当文件清楚地说,应该是空白的,它已经过时了?

这背后的真正问题是什么? 为什么构build失败了几年不需要的东西?

我有同样的问题。 Dan Cutting先生build议的解决scheme适用于我。

为了节省一些时间,这里是我们需要从网页链接。

“就小牛而言,在签署应用程序时不应该包含资源规则选项,但由于某些原因,脚本仍然会将此选项传递给代码签名工具。

解决方法是更改​​PackageApplication脚本,使其不再执行此操作(这将需要sudo访问权限)。 脚本的第155行构造参数以传递给代码签名者,所以我们可以简单地删除对资源规则的引用:“

 //Remove - Begin - my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules", - "--sign", $opt{sign}, - "--resource-rules=$destApp/ResourceRules.plist"); //Remove - End //Add - Begin + my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements", + "--sign", $opt{sign}); //Add - Starts 

如果您已经使用了Xcode版本更高的6.1,则更改下面的行

$(SDKROOT)/ResourceRules.plist

TO CODE_SIGN_RESOURCE_RULES_PATH = $(SDKROOT)/ResourceRules.plist