--resource-rules已在Mac OS X中不建议使用x> = 10.10


69

我试图使用iResign应用程序在Mac Os 10.10上使用新的配置文件来退出我的ipa文件,但收到以下警告:“警告:-resource-rules在Mac OS X> = 10.10中已被弃用”。

我现在该怎么办?


您从签名中排除哪些文件?
Droppy 2014年

我有一个带有开发证书的ipa文件,现在我想将其更改为企业发行证书。我使用iResign应用程序在Mac OS X 10.10上辞职,但显示了该警告。
hiennv92 2014年

听起来像iResign(无论是什么)中的错误,您可能应该使用Xcode来重建应用程序?
Droppy 2014年

谢谢你的支持。但是我的一些朋友不知道如何使用Xcode进行构建。最好是他们可以随发行版一起辞职ipa文件。我建议他们使用Mac OS 10.9.5或更低版本。无论如何,非常感谢
hiennv92

Answers:


6

我发现了一种解决方法:如果您从XCode运行iResign应用程序—那么您将无问题地退出应用程序(警告将出现在控制台中而不是弹出窗口中)。但是,如果您关闭XCode并单独运行应用程序,则弹出窗口将返回给您!

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

if (systemVersionFloat < 10.9f)

为优胜美地10.10打破。滑稽。

谢谢,


1
非常感谢你!这确实是一个有趣的错误。我最近发现了这个错误。这里也有新的更新:github.com/maciekish/iReSign
hiennv92

条件从哪里来?我该如何解决这种情况?
munmunbb 2015年

这看起来不像是硬编码强制弃用的错误。
Lytic

153

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

Code Signing Resource Rules Path

并添加:

$(SDKROOT)/ResourceRules.plist

在此处输入图片说明


11
这帮助我解决了TestFlight遇到的一个问题。
dfmuir 2014年

2
我在Code Signing Resource Rules Path那里看不到...有什么想法吗?
乔治2014年

4
这似乎已经解决了我在使用TestFlight时遇到的问题
约瑟夫(Joseph)

5
前往Build Settings格奥尔格(Georg)并确保已选择所有级别
Danut Pralea 2014年

4
这在创建IPA失败时使用Mac的TestFlight解决了我的问题。老实说,感觉像苹果公司正在慢慢杀死有关TestFlight的一切。我认为当他们收购时,这将是一件好事……
Cameron E

24

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

技术说明TN2206提供了详细信息:

资源规则

OS X Mavericks v10.9之前的系统记录了签名功能(--resource-rules),用于控制应使用代码签名密封捆绑中的哪些文件。小牛已弃用了此功能。在Mavericks及以后的版本中执行的代码签名始终将所有文件密封在一个包中。无需再明确指定。这也意味着不应再使用Xcode中的“代码签名资源规则路径”构建设置,而应将其留空。

因此,不再可能从签名中排除捆绑的部分。捆绑签名后,应将其视为只读。


很好的信息,尽管这似乎暗示上面投票最高的解决方案相反。:S
Mike Chamberlain 2015年

Xcode 6.x开始,我猜投票最高的答案是正确的。它对我的案子没有用。
里卡多·桑切斯·塞兹

正确答案需要从XCode 7开始更新
carbonr

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});
    

这实际上是唯一可行的解​​决方案。谢谢。
jimpic '16

我认为这是解决方案
Loukas 17-4-24

无法解锁此文件
simply_me


2

如果您要使用终端设备对应用程序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/

1

我刚刚在Xcode 7 GM(从Xcode 6.4开始)中打开了现有的iOS应用,并看到了此弃用警告。

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

就我而言,该项目的键和值已默认设置(我从未设置过)。警告是关于资源规则也将被弃用。

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

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


0

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

我不喜欢必须为每个要处理的项目修改构建设置的想法,只是为了让我辞职。

我重建了辞职工具,并将其复制到我的Applications目录中,因此不必在Xcode中打开它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.