【问题标题】:--resource-rules has been deprecated in mac os x >= 10.10--resource-rules 已在 mac os x >= 10.10 中弃用
【发布时间】:2014-12-15 02:19:14
【问题描述】:

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

我现在该怎么办?

【问题讨论】:

  • 您要从签名中排除哪些文件?
  • 我有一个带有开发证书的 ipa 文件,现在我想将其更改为企业分发证书。我使用 iResign 应用程序在 Mac OS X 10.10 上辞职,但它显示了该警告。
  • 听起来像是iResign 中的一个错误(不管是什么),您可能应该改用 Xcode 重新构建应用程序?
  • 感谢您的支持。但是我的一些朋友不知道如何使用 Xcode 进行构建。如果他们可以使用他们的分发证书重新签署 ipa 文件,那就更好了。我会建议他们使用 Mac OS 10.9.5 或更低版本。无论如何,非常感谢你

标签: ios iphone code-signing ipa osx-yosemite


【解决方案1】:

点击你的项目 > 目标 > 选择你的目标 > 构建设置 >

Code Signing Resource Rules Path

并添加:

$(SDKROOT)/ResourceRules.plist

【讨论】:

  • 这帮助我解决了我在使用 TestFlight 时遇到的问题。
  • 我没有看到Code Signing Resource Rules Path...有什么想法吗?
  • 这似乎解决了我在使用 TestFlight 时遇到的问题
  • 转到Build Settings Georg 并确保您选择了所有级别
  • 这解决了我在创建 IPA 失败时使用 Mac 版 TestFlight 的问题。老实说,感觉就像苹果正在慢慢扼杀 TestFlight 的所有优点。当他们获得时,我认为这将是一件好事......
【解决方案2】:

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

Technical Note TN2206 提供详细信息:

资源规则

OS X Mavericks v10.9 之前的系统记录了一个 签名功能(--resource-rules)来控制捆绑中的哪些文件 应由代码签名密封。此功能已过时 对于小牛队。在 Mavericks 和后来的代码签名总是密封 捆绑中的所有文件;无需明确指定 更多的。这也意味着代码签名资源规则路径构建 Xcode 中的设置不应再使用,应留空。

因此不再可能从 签名。捆绑包应被视为只读 签名。

【讨论】:

  • 好消息,虽然这似乎暗示了上述最高投票答案的解决方案的相反...:S
  • 我猜从 Xcode 6.x 开始,最高投票的答案是正确的。它不适用于我的情况。
  • 自 XCode 7 起正确答案需要更新到此
【解决方案3】:

在 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】:

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

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

if (systemVersionFloat < 10.9f)

Yosemite 10.10 已损坏。好笑。

谢谢,

【讨论】:

  • 非常感谢!这真是一个有趣的错误。我最近发现了这个错误。这里也有新的更新:github.com/maciekish/iReSign
  • 条件从何而来?我应该如何解决这种情况?
  • 这看起来不像是一个错误,而是硬编码的强制弃用。
【解决方案5】:

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

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

【讨论】:

    【解决方案6】:

    如果您使用终端退出应用程序,那么您甚至可以在执行代码签名时省略 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/
    

    【讨论】:

      【解决方案7】:

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

      有趣的是,答案和 cmets 都说要更新“代码签名资源规则路径”,并且他们还引用了 Mac 应用程序。

      在我的例子中,项目已经默认设置了这个键和值(我从来没有设置过)。警告是关于资源规则也被弃用。

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

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

      【讨论】:

        【解决方案8】:

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

        我不喜欢必须为我要处理的每个项目修改构建设置,以便我可以辞职。

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

        【讨论】:

          猜你喜欢
          • 2016-11-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-22
          • 2015-11-03
          • 1970-01-01
          • 2015-04-28
          • 1970-01-01
          相关资源
          最近更新 更多