2015-09-03 99 views
7

我很少关心人们如何处理以下问题。代码签名资源规则路径在Jenkins上失败,CODE_SIGN_RESOURCE_RULES_PATH

基本上它听起来像 “建立在詹金斯失败与ResourceRules.plist: cannot read resources

我的情况是:

1)詹金斯

2)局部我在Xcode工作7测试版(在一个单独的分支)

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

4)詹金斯从站的Xcode 6.4.1安装

你们当中有些人会说: “这个问题被问了数百万次”,像herehereherehere

documentation说以下内容:

资源规则

系统之前OS X v10.9小牛记录了签名功能(--resource规则)来控制哪些文件一个捆绑应该由代码签名来密封。这个功能已经被小牛淘汰了。在小牛队制作的代码签名,后来总是将所有文件封装在一个包中;没有必要再明确指出这一点。这也意味着Xcode中的代码签名资源规则路径构建设置不应该再使用,应该留空。

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

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

+1

我证实,这个解决办法不适合的Xcode 7.工作这太可怕了更新如何打破近期的一切。 – dreamzor

回答

5

我有同样的问题。 Mr.Dan Cutting here建议的解决方案适用于我。

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

“至于小牛,资源规则选项不应该签署的应用程序时,但出于某种原因,脚本仍然通过沿的代码签名工具这个选项包括在内。

的解决方法是改变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 
2

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

$(SDKROOT)/ ResourceRules。plist中

TO CODE_SIGN_RESOURCE_RULES_PATH = $(SDKROOT)/ResourceRules.plist

相关问题