Ios ipatool失败,出现异常:#<;命名错误:未定义的方法“toolsPath';对于零:零级>;

Ios ipatool失败,出现异常:#<;命名错误:未定义的方法“toolsPath';对于零:零级>;,ios,xcode,xcode9,ipa,Ios,Xcode,Xcode9,Ipa,将Xcode升级到9.0.1版本后,在我的一个项目中作为iPA导出时,我遇到一个错误“ipatool失败,出现异常:#NoMethodError:nil:NilClass的未定义方法'toolsPath'。尝试导出其他项目档案和同一项目档案的旧版本,我可能能够导出iPA 由于依赖关系框架中的约束,位代码在项目中被禁用。阅读一些博客,并没有找到一个令人信服的答案。希望有人能帮助我理解这个问题 Xcode版本:9.0.1 MAC OS版本:10.13 ipatool JSON错误响应: { 代码=6

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

由于依赖关系框架中的约束,位代码在项目中被禁用。阅读一些博客,并没有找到一个令人信服的答案。希望有人能帮助我理解这个问题

Xcode版本:9.0.1

MAC OS版本:10.13

ipatool JSON错误响应:

{ 代码=646; 说明="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
rpath'\n/Applications/Xcode.app/Contents/Developer/bin/ipatool:259:in
resolveddylibs'\n/applicationons/Xcode.app/Contents/Developer/usr/bin/ipatool:1415:in
块(2级)在初始化'\n/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1414:in
each'\n/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1414:in
块中初始化'\n/Applications/Xcode.app/Contents/Developer/bin/ipatool:1413:in
each'\n/Applications/Xcode.app/Contents/Developer/bin/ipatool:1413:in
initialize'\n/Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2278:in
new'\n/Applications/Xcode.app/Contents/Developer/bin/ipatool:2278:in
ProcessIPA'\n/Applications/Xcode.app/Contents/Developer/bin/ipatool:2929:in
”; 信息={ }; 级别=错误; 类型=异常; }


我通过更新项目中使用的一个外部框架修复了此问题,该框架导致了此问题

  • 已从项目中完全删除旧的框架文件
  • 注释掉框架依赖项代码行以避免编译错误
  • 归档并导出IPA,但不包含有问题的框架,以确保框架存在问题
我不确定这个问题的原因,因为我无法控制调试外部框架,但如果您遇到这个问题,可能会选择尝试

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


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

即使我删除了旧的框架文件,也禁用了位代码。我无法为企业导出发行版
ipa
,甚至无法在
XCode 9.1

最后,在下面的红色错误出现之前,我点击了“快速下一步”,O就可以导出我的ipa了。我想这是
XCode 9.1s
bug还是什么

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

ipatool失败,出现异常:#我只是有这个问题。虽然@karan建议的解决方法允许我创建有效的临时构建,但它没有解决问题。结果是,我在我的复制包资源中使用了来自HockeyApp的BuildAgent。我删除了这个问题,问题得到了解决。

发生这种情况的原因很少。

  • 检查框架依赖项(如POD)是否正确导入,并确保它们不是在发布阶段构建的
  • 应用程序>常规设置>链接的框架和库

  • 尝试使用资源调配配置文件(开发)构建应用程序,并尝试使用其他配置文件(临时配置文件或企业配置文件)存档应用程序,可能会导致此问题

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


  • 只有将生成设置中的启用位码设置为否对我有效