--resource-rules已在mac os x> = 10.10中弃用

问题描述 投票:68回答:8

我尝试使用iResign应用程序在Mac OS 10.10上使用新的配置文件重新签名我的ipa文件但是我收到了这个警告:“警告: - 在Mac OS X中已经弃用了--resource-rules> = 10.10”。

我现在应该怎么做?

ios iphone code-signing ipa osx-yosemite
8个回答
6
投票

我找到了解决方法:如果你从XCode运行iResign应用程序 - 那么你将没有问题地重新签名应用程序(警告将出现在控制台而不是弹出窗口中)。但如果您关闭XCode并单独运行应用程序 - 那么弹出窗口将返回给您!

顺便说一句:发现错误:)条件

if (systemVersionFloat < 10.9f)

为约塞米蒂10.10打破。滑稽。

谢谢,


153
投票

单击您的项目>目标>选择目标>构建设置>

Code Signing Resource Rules Path

并添加:

$(SDKROOT)/ResourceRules.plist

enter image description here


24
投票

从Xcode 7开始,Code Signing Resource Rules Path构建设置必须保留为空,否则会产生此警告。

Technical Note TN2206提供详细信息:

资源规则

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

因此不再可能从签名中排除一部分捆绑。一旦签名,捆绑包应被视为只读。


10
投票

在Xcode 7之前的解决方案停止工作。 Rishi Goel(在https://stackoverflow.com/a/32762413/2252465)指出了一个新的

  1. 删除CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist
  2. 找到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication脚本并更新它。 在脚本中查找包含以下代码的行 my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules", "--sign", $opt{sign}, "--resource-rules=$destApp/ResourceRules.plist"); 将其更改为: my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements", "--sign", $opt{sign});

4
投票

尝试在xcodebuild命令中添加以下参数。

-sdk iphoneos CODE_SIGN_RESOURCE_RULES_PATH='$(SDKROOT)/ResourceRules.plist' 

1
投票

我刚刚在Xcode 7 GM(来自Xcode 6.4)中打开了我现有的iOS应用程序并看到了这个弃用警告。

有趣的是,答案和评论都说要更新“代码签名资源规则路径”,他们也会引用Mac应用程序。

在我的例子中,项目默认已设置此键和值(我从未设置过)。警告是关于资源规则也被弃用。

对我来说,删除“代码签名资源规则路径”的值删除了警告。我没有以这种方式提交新版本,因此我可能必须回来更新此答案。

只是觉得有趣的是我的回答与其他人所看到的相反。


1
投票

如果您使用终端辞职应用程序,那么您甚至可以在执行代码签名时省略resource-rules,因为无需在外部指定要签署哪个资源以及哪个不签名。现在必须签署包内的所有资源。

要使用终端重新授权应用,您可以按照以下步骤操作:

unzip MyApp.ipa

rm -rf Payload/MyApp.app/_CodeSignature/

cp ~/Desktop/MyAdHoc.mobileprovision Payload/MyApp.app/embedded.mobileprovision 

codesign -f -s "iPhone Distribution: Code signing Certificate for Enterprise or Ad-hoc app" Payload/MyApp.app

zip -qr MyApp_Resigned.ipa Payload/

0
投票

如果您从参数列表中注释掉两个--resource-rules参数,iResign应用程序将调用codesign任务,那么您不必更改应用程序项目的项目构建设置。

我不喜欢为我想要使用的每个项目修改构建设置的想法,只是为了让我可以重新签名。

我重建了resign工具,并将其复制到我的Applications目录,这样我就不必在Xcode中打开它了。

© www.soinside.com 2019 - 2024. All rights reserved.