我很少关心人们如何对待以下问题。
基本上它听起来像“使用ResourceRules.plist: cannot read resources
”
我的情况是:
1)詹金斯
2)本地我在Xcode 7 beta(在一个单独的分支上)工作
3)我的队友在6.4.1工作,对他们来说一切正常
4)Jenkins slave已安装Xcode 6.4.1
有些人会说“这个问题被问了数百万次”,例如here,here,here,here。
但 documentation说明以下内容:
资源规则
OS X之前的系统Mavericks v10.9记录了一个签名功能(--resource-rules)来控制捆绑中的哪些文件应该由代码签名密封。此功能已被淘汰为小牛队。在Mavericks中进行代码签名,之后总是将所有文件密封在一起;没有必要再明确指定它。这也意味着不再使用Xcode中的代码签名资源规则路径构建设置,应该留空。
所以我的问题是为什么每个人都可以快速绕过,破解,解决这个问题,当文档明确说明应该是空白的并且它已经过时了?
这背后的真正问题是什么?为什么构建失败了几年不需要的东西?
答案 0 :(得分:5)
我遇到了同样的问题。丹切割先生here建议的解决方案适合我。
为了节省一些时间,我们需要通过网络链接。
"从Mavericks开始,签名应用时不应包含资源规则选项,但由于某种原因,脚本仍会将此选项传递给代码签名工具。
解决方法是更改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
答案 1 :(得分:2)
如果您使用的是大于6.1的Xcode版本,请更改以下行
$(SDKROOT)/ResourceRules.plist
要 CODE_SIGN_RESOURCE_RULES_PATH = $(SDKROOT)/ResourceRules.plist