React Native 爱马仕发动机在m1 mac上的pod安装故障

cedebl8k  于 2023-01-21  发布在  React
关注(0)|答案(1)|浏览(494)

我已经创建了一个0.70.6版本的React-Native应用程序,经历了椰子的痛苦,以及在苹果硅芯片上开发的一切(M2)并使其工作,并在该项目上做了相当多的工作,然后(创建GitHub repo后)将其交给同事进行设计(他在一台M1上)...在他们的机器上也有很多问题,但最终还是让它工作了。现在,React-Native 0. 71. 0已经发布了,我跑过了升级它的所有步骤,让它在我的M2机器上工作了,一点问题都没有,但在推动和得到它在他们的机器上,我还没有能够找到一个解决方案的吊舱安装失败,由于爱马仕引擎无法加载,一对夫妇的错误弹出是,

[!] Failed to load 'hermes-engine' podspec:
[!] Invalid `hermes-engine.podspec` file: undefined method 'exists?' for FileClass.

我一整天都在想这意味着什么(我对React-Native......和一般的移动的开发还是个新手)而且我已经了解到“exists?”在某些ruby版本中已经被弃用了(我使用的是3.2.0)尽管它在我的机器上运行良好,所以我很困惑到底缺少了什么。我一直在使用chruby来安装ruby,唯一的区别是我的机器上有ruby版本2.7.5和2.7.7...但是当然,为了能够在我的机器上实际安装它们,我必须设置一些标志,我不认为它们会影响我的项目,因为bundle安装和pod安装使用3.2.0。
列出我在这些计算机上安装的所有内容:

  • 捆扎机-〉2.4.1
  • 椰足类-〉1.11.3
  • Ruby-〉3.2.0
  • 节点-〉18.13.0
  • xcode -〉14.2(使用命令行工具)

另一个错误报告,如果它是有用的:

Command `pod install` failed.
└─ Cause: Failed to load 'hermes-engine' podspec: 
[!] Invalid `hermes-engine.podspec` file: undefined method `exists?' for File:Class.

 #  from /Users/<user>/projects/<app_dir>/node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec:46
 #  -------------------------------------------
 #    source[:http] = "file://#{destination_path}"
 >  elsif File.exists?(hermestag_file) && isInCI
 #    Pod::UI.puts '[Hermes] Detected that you are on a React Native release branch, building Hermes from source but fetched from tag...'.yellow if Object.const_defined?("Pod::UI")
 #  -------------------------------------------

如果有任何信息,我需要包括为清晰,我会更新这篇文章作为必要的。

  • 我尝试删除Pod文件,然后安装Pod...同样的错误
  • 删除了Podfile.lock、缓存清理和删除Pod...相同错误
  • 正在删除节点模块/npm cache clean --force && npm install
  • 然后执行npx pod-install,希望让节点处理事情...同样的错误
  • 运行pod deintegrate和pod安装......很可怕,东西坏了,所以恢复了,回到了原点

今天早些时候我还尝试了其他一些东西,但我记不起来了,它们都回家了,所以我无法访问我运行的所有命令,但这些是最新的,在我有更清晰的认识之前,我将尝试获取那些需要设置的标志,以安装ruby的旧版本,看看是否有任何效果
最后一个提到,虽然,我们最近也得到了一个M1的Mac Mini,我跑了所有的步骤,让项目的工作...结束了在相同的车辙作为其他M1,但再次,将尝试这些LD_FLAGS或任何它可能是和更新此线程,如果这是什么修复问题
通过查看与这些问题相关的旧问题,人们发现了使用-x86_64命令的解决方案,而且我已经成功地做到了这一点,因为维护人员发布了支持arm 64的新版本,但是如果我在任何地方需要它,那就这样吧,我会尽我所能

h7appiyu

h7appiyu1#

不需要安装其他版本的ruby或任何东西,我让它通过做一些我觉得很脏的事情来安装hermes-engine pod...这就是进入它提到的文件,删除exists?中的“s”,这样它就只显示exist?,然后我还将cocopods从1.11.3降级为1.11.2,并查看.podspec文件是如何布局的,它有条件地加载引擎,首先查看机器上是否下载了,然后一旦发现没有下载,它就最终用现有条件找到了问题代码......因此,它下载了所有内容,运行良好,我能够在Mac mini上构建和运行我的应用程序......但在另一台m1机器上尝试相同步骤时,我得到了一个 * 非常有用的错误 * --Oh no, an error occured...完美,现在我怀疑我所做的这些更改是否会影响M2 pod命令
如果在接下来的几天里没有更好的答案,我会假设这是最好的修复方法,直到react-native将他们的ruby版本升级到3.2.0,经过进一步的挖掘......这正是删除此exists?文件方法的版本
但我仍然希望其他使用M1 MacBook的人在React-Native 0.71.0的稳定版本上遇到这些问题时能提供反馈

相关问题