【问题标题】:ipatool failed with an exception: #<NoMethodError: undefined method `toolsPath' for nil:NillClass>ipatool 因异常而失败:#<NoMethodError: undefined method `toolsPath' for nil:NillClass>
【发布时间】:2017-10-31 16:11:14
【问题描述】:

Xcode 升级到 9.0.1 版本后,我在我的一个项目中导出为 iPA 时遇到错误“ipatool failed with an exception: # NoMethodError: undefined method `toolsPath' for nil:NilClass”。尝试导出其他项目档案和同一项目档案的旧版本,我可能能够导出 iPA。

由于依赖框架的限制,项目中禁用了Bitcode。阅读了一些博客,并没有为这个问题找到令人信服的答案。希望有人能帮助我理解这个问题吗?

Xcode 版本:9.0.1

MAC 操作系统版本:10.13

ipatool JSON 错误响应:

{ 代码 = 646; description = "ipatool 因异常失败:#toolsPath' for nil:NilClass>\n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:804:inrawLoadCommands'\n /Applications/Xcode.app/Contents /Developer/usr/bin/ipatool:820:in rpaths'\n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:259:inresolveLoadedDylibs'\n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1415:in block (2 levels) in initialize'\n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1414:ineach'\n /Applications/Xcode .app/Contents/Developer/usr/bin/ipatool:1414:in block in initialize'\n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1413:ineach'\n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1413:in initialize'\n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2278:innew'\n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2278:in ProcessIPA'\n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2929:in'"; 信息 = { }; 级别=错误; 类型=异常; }

Screen shot of the Error

【问题讨论】:

    标签: ios xcode xcode9 ipa


    【解决方案1】:

    解决了Xcode 9.1的分布式企业模式

    即使我删除了旧的框架文件,禁用了位码.. 我无法为企业导出分发 ipa,甚至无法在 XCode 9.1 的开发模式下导出

    最后我只是在出现下面的红色错误之前快速单击下一步,并且 O 能够导出我的 ipa.. 我认为这是 XCode 9.1s 错误或什么。

    ipatool failed with an exception: #<NoMethodError: undefined method `toolsPath' for nil:NillClass>
    

    我在 developer.apple.com 上写了答案 https://forums.developer.apple.com/thread/90934#thread-message-281096

    【讨论】:

      【解决方案2】:

      这可能有几个原因。

      1. 检查是否正确导入了 Pod 等框架依赖项,并确保它们没有在发布阶段构建。

      App>常规设置>链接的框架和库。

      1. 尝试使用配置文件(开发)构建应用程序并尝试使用不同的配置文件(临时或企业)将其存档可能会导致此问题。

      2. 如果您将任何 javascript 文件/节点模块添加到您的包中,那么它也可能导致此错误。

      【讨论】:

        【解决方案3】:

        我通过更新我的项目中使用的一个导致问题的外部框架解决了这个问题

        • 从项目中完全删除了旧的框架文件
        • 注释掉框架依赖代码行以避免编译错误
        • 已存档并导出 IPA,但不包含有问题的框架,以确保问题出在框架上

        我不确定此问题的原因因为我无法控制调试外部框架,但如果您遇到此问题,可能是一个尝试的选项。

        如果有多个框架并且您不确定有问题的框架,请尝试逐个删除。

        https://forums.developer.apple.com/message/273921#273921

        【讨论】:

          【解决方案4】:

          我只是有这个问题。虽然@karan 建议的解决方法允许我创建有效的临时构建,但它并没有解决问题。事实证明,我最终在我的 Copy Bundle Resources 中使用了来自 HockeyApp 的 BuildAgent。我删除了这个,问题就解决了。

          【讨论】:

            【解决方案5】:

            只有在 Build Settings 中将 Enable Bitcode 设置为 No 对我有用。

            【讨论】:

              猜你喜欢
              • 2019-06-08
              • 2020-11-14
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-02-01
              • 2015-03-19
              • 2016-08-13
              相关资源
              最近更新 更多