You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片Mac升级RN 0.71.0后pod install因hermes-engine失败

解决React Native 0.71.0在M1/M2 Mac上pod install时hermes-engine的Ruby兼容性问题

问题概述

基于React Native 0.70.6开发的项目升级到0.71.0后,M2芯片Mac可正常执行pod install,但M1芯片Mac及M1 Mac Mini执行该命令时失败,报错如下:

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

报错指向/Users/<user>/projects/<app_dir>/node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec第46行的File.exists?(hermestag_file) && isInCI代码,原因是Ruby 3.2.0中File.exists?方法已被弃用,但相同环境下M2机器可正常运行。

环境信息

两台机器环境版本完全一致:

  • Ruby 3.2.0
  • CocoaPods 1.11.3
  • bundler 2.4.1
  • Node.js 18.13.0
  • Xcode 14.2(含命令行工具)

已尝试的无效操作

  • 删除Pods文件夹后重新执行pod install
  • 删除Podfile.lock、清理CocoaPods缓存并删除Pods后重新安装
  • 删除node_modules,执行npm cache clean --force && npm install后再执行npx pod-install
  • 执行pod deintegrate后重新pod install(操作后项目损坏已回滚)

可行解决方案

方案1:临时修改hermes-engine.podspec并持久化补丁

Ruby 3.2.0中File.exists?是File.exist?的弃用别名,部分环境下可能未正确加载该别名,直接替换为官方推荐的方法即可:

  1. 打开项目中的node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec文件
  2. 定位到第46行,将File.exists?(hermestag_file) && isInCI修改为File.exist?(hermestag_file) && isInCI
  3. 执行pod install验证是否解决问题

为避免每次npm install后修改被覆盖,可使用patch-package持久化补丁:

  • 安装依赖:npm install patch-package --save-dev
  • 修改完podspec后执行:npx patch-package react-native
  • 将生成的patches文件夹提交到Git仓库,同事拉取代码后执行npm install会自动应用该补丁

方案2:降级Ruby版本到3.1.x

CocoaPods 1.11.3对Ruby 3.2.0的兼容性存在问题,降级到Ruby 3.1.x版本可彻底解决:

  1. 使用rbenv安装Ruby 3.1.4(若未安装rbenv,先执行brew install rbenv):
    rbenv install 3.1.4
    
  2. 在项目根目录创建.ruby-version文件,内容为:
    3.1.4
    
  3. 重启终端,执行ruby -v确认版本已切换
  4. 重新执行bundle install和pod install

方案3:通过Rosetta 2兼容模式执行pod install

利用Rosetta 2模拟x86_64环境,绕过Ruby版本兼容性问题:

  1. 打开终端,右键点击终端图标选择「显示简介」
  2. 勾选「使用Rosetta打开」,重启终端
  3. 在终端中执行pod install

内容的提问来源于stack exchange,提问作者Gentry T.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 07:45:36