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

运行npm run ios遇Invariant Violation错误,迁Mac后故障

解决Mac环境下Expo iOS运行的两个核心错误

遇到的错误信息

ERROR Invariant Violation: Your JavaScript code tried to access a native module that doesn't exist.
提示:若尝试使用Expo Go不支持的模块,需创建应用的开发构建
ERROR Invariant Violation: "main" has not been registered. 该问题可能由以下原因导致:

  • Metro(本地开发服务器)在错误文件夹启动,请检查Metro是否运行,停止后在当前项目重启。
  • 某模块加载失败导致未调用AppRegistry.registerComponent。

注:该项目在Windows环境运行正常,迁移到Mac后出现上述故障。


分步解决方案

1. 解决「原生模块不存在」问题

  • 排查第三方依赖:逐个检查项目中使用的库,确认是否包含Expo Go不支持的原生模块。如果存在这类模块,放弃使用Expo Go,改用开发构建方式运行项目。
  • 重装依赖:删除项目根目录下的node_modules文件夹、package-lock.json文件,执行npm install命令重新安装所有依赖,确保Mac环境下依赖安装完整无损坏。

2. 解决「"main"未注册」问题

  • 重启Metro服务器:彻底关闭当前运行的Metro进程,回到项目根目录执行npx expo start --clear命令,强制清除缓存并在正确目录启动服务器。
  • 定位模块加载失败原因:查看终端输出的完整错误日志,找到导致加载失败的具体模块,检查该模块是否兼容Mac环境,或是存在配置、安装遗漏。确保所有依赖加载完成后,AppRegistry.registerComponent能被正常调用。

内容的提问来源于stack exchange,提问作者Natalie Sumbo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:35:41