M1芯片2020款MacBook Air 使用React Native CLI创建运行iOS项目报错
M1芯片MacBook Air React Native项目构建失败全流程修复方案
核心报错根因
- 初始化项目时错误使用
sudo提权执行用户态命令,导致node_modules内文件归属root用户,全链路触发EACCES权限报错 - npm默认官方源在当前网络环境下无法解析,导致依赖下载中断、开发依赖安装不完整
- M1架构未适配兼容规则、未按流程执行CocoaPods安装步骤,导致iOS原生依赖拉取失败
- 依赖安装缺失连带引发编译阶段RCTBridgeDelegate.h头文件找不到的连锁问题
可落地修复步骤
1. 清理残留环境与权限冲突
- 彻底删除之前创建失败的
test项目文件夹,避免残留文件干扰后续操作 - 修复全局npm目录权限,从根源解决安装时的EACCES权限报错,依次执行命令:
sudo chown -R $(whoami) ~/.npmsudo chown -R $(whoami) /usr/local/lib/node_modules - 固化操作规则:绝对不要使用sudo执行react-native、npm类的用户态操作,提权仅用于系统级软件安装环节
2. 解决npm域名解析失败的网络问题
- 切换npm全局源为可正常访问的国内镜像地址,执行命令:
npm config set registry https://registry.npmmirror.com - 验证配置是否生效:执行
npm config get registry,确认返回值为配置的镜像地址 - 验证网络连通性:执行
ping registry.npmmirror.com,确认无解析失败、无严重丢包问题
3. 解决fsevents模块gyp编译报错
- 匹配当前环境(Node14.15.3、Xcode12.3)选择对应兼容版本的RN脚手架,非提权执行项目初始化命令:
npx react-native init test --version 0.63.4 - 初始化过程中若再次出现fsevents的gyp权限报错,手动进入项目目录下
node_modules/fsevents路径,执行npm run install完成模块编译,该步骤会自动跳过非必要二进制文件,不会触发权限不足问题
4. 修复iOS端全链路构建报错
- 回到项目根目录,修正node_modules内RN相关脚本的执行权限,依次执行:
chmod -R 755 node_modules/react-native/scripts/chmod -R 755 node_modules/react-native/ReactCommon/callinvoker/ - 按M1芯片适配要求设置终端的Rosetta兼容模式,进入项目iOS目录执行
pod install,等待生成完整的Podfile.lock文件 - 回到项目根目录执行
npm install,补全之前未安装完整的@babel/core、eslint、jest、react-test-renderer等开发依赖,再返回iOS目录重新执行一次pod install,确保RN原生模块链接正常,解决编译阶段找不到React/RCTBridgeDelegate.h的头文件缺失问题 - 最后在项目根目录执行
npx react-native run-ios,完成项目编译启动
内容的提问来源于stack exchange,提问作者Al Imran
相关产品推荐
相关产品推荐

