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

M1芯片Mac使用Nx react-native pod-install命令执行失败求助

M1 Mac下执行pod install(含NX命令)遇到ffi架构不兼容错误的解决方法

问题场景

在M1芯片的Mac设备上,无论是通过nx run <my_package_name>:pod-install命令,还是直接进入iOS目录执行cd packages/app/ios && pod install,都会触发以下错误:

  • 反复提示Ignoring ffi-1.15.4 because its extensions are not built. Try: gem pristine ffi --version 1.15.4
  • 核心架构不兼容报错:dlopen(/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi_c.bundle, 0x0009): tried: '/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/lib/ffi_c.bundle' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64'))

环境信息:

  • macOS M1 (Silicon)
  • react@18.2.0、react-dom@18.2.0
  • react-native@0.71.8
  • nx@16.3.0-beta.8、@nx/react-native@16.3.0-beta.8

解决步骤

方法1:重新构建适配arm64的ffi

执行以下命令重新安装并修复ffi:

# 安装适配arm64的ffi
arch -arm64 gem install ffi -- --enable-libffi-alloc

# 修复指定版本的ffi
gem pristine ffi --version 1.15.4
gem pristine ffi --version 1.15.5

方法2:通过Rosetta 2运行终端

  1. 找到「终端」应用,右键选择「显示简介」
  2. 勾选「使用Rosetta打开」,重启终端
  3. 重新执行pod install或nx run app:pod-install

方法3:直接指定命令架构

在执行命令前添加架构指定:

# 直接执行pod install
arch -arm64 pod install

# 执行NX的pod-install命令
arch -arm64 nx run app:pod-install

方法4:更新Ruby版本(长期解决方案)

M1 Mac自带的Ruby为x86架构,推荐用rbenv安装arm64版本的Ruby:

# 安装rbenv
brew install rbenv

# 安装适配arm64的Ruby版本(示例为3.2.2)
rbenv install 3.2.2

# 设置全局Ruby版本
rbenv global 3.2.2
# 或进入项目目录设置本地版本
# rbenv local 3.2.2

# 重新安装cocoapods
gem install cocoapods

完成后再执行pod install或NX相关命令即可。

内容的提问来源于stack exchange,提问作者Guillem Puche

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:17:16