ipatool失败并出现异常:#<nomethoderror:undefined =“”method =“”`toolspath'=“”for =“”nil:nillclass =“”>

时间:2017-10-31 16:11:15

标签: ios xcode xcode9 ipa

将Xcode升级到9.0.1版本后,我遇到一个错误“ipatool失败,异常:#NoMethodError:未定义的方法`toolsPath'for nil:NilClass”,同时在我的一个项目中导出为iPA。试图导出其他项目档案和同一项目档案的旧版本,我可以导出iPA。

由于依赖框架中的约束,Bitcode在项目中被禁用。阅读一些博客,但没有找到令人信服的答案。希望有人可以帮我理解这个问题吗?

  

Xcode版本:9.0.1

     

MAC OS版本:10.13

ipatool JSON错误响应:

{             code = 646;             description =“ipatool失败,异常:#toolsPath'代表nil:NilClass&gt; \ 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:in resolveLoadedDylibs'\ 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:in each'\ n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1414:in block in initialize'\n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1413:in每个'\ n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1413:in { {1}} new'\ n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2278:in initialize'\n /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2278:in'“;             info = {             };             level = ERROR;             type = exception; }

Screen shot of the Error

5 个答案:

答案 0 :(得分:1)

已解决使用Xcode 9.1

分发企业模式

即使我删除了旧的框架文件,也禁用了bitcode ..我无法为企业导出发布ipa,甚至无法导出XCode 9.1

的开发模式

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

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

enter image description here

Select next before error comes..

enter image description here

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

答案 1 :(得分:1)

这可能是因为几个原因。

  1. 检查是否正确导入了诸如Pod之类的框架依赖项,并确保它们不是在发布阶段构建的。
  2. 应用&gt;常规设置&gt;链接的框架和库。

    Xcode Image

    1. 尝试使用配置文件(开发)构建应用程序并尝试使用其他配置文件(adhoc或企业版)对其进行存档可能会导致此问题。

    2. 如果您的捆绑包中添加了任何javascript文件/节点模块,那么它也会导致此错误。

答案 2 :(得分:0)

我通过更新我的项目中使用的导致问题的外部框架来修复此问题

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

我不确定这个问题的原因因为我无法控制调试外部框架,但如果你遇到这个问题,可能会选择尝试。

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

仅将 Build Settings 中的启用位码设置为对我有用。