Expo构建iOS模拟器本地应用失败,遭遇两类Hermes引擎错误
解决方案
1. 修复expo-linking的TypeError问题
- 手动指定与Expo 49兼容的
expo-linking版本(Expo 49对应版本为~5.0.2),执行安装:npm install expo-linking@~5.0.2 - 执行彻底的缓存清理与依赖重置:
npx expo start --clear rm -rf ios/Pods ios/Podfile.lock rm -rf node_modules package-lock.json npm install pod install --project-directory=ios - 检查iOS Podfile的Hermes配置,确保启用状态正确:
use_react_native!( :path => config[:reactNativePath], :hermes_enabled => true )
2. 解决"main"未注册问题
该问题多由第一个错误导致模块加载失败,进而未触发AppRegistry.registerComponent,解决第一个问题后按以下步骤操作:
- 彻底终止Metro进程(
Cmd+C),关闭iOS模拟器 - 重新执行构建命令:
npx expo run:ios - 检查项目入口文件(如
App.js或index.js),确保组件注册代码正确:import { AppRegistry } from 'react-native'; import App from './App'; import { name as appName } from './app.json'; AppRegistry.registerComponent(appName, () => App);
3. 排查第三方库兼容性
react-native-ui-lib@7.14.4可能与Expo 49存在适配问题,可尝试临时移除该包后重新构建。若问题消失,需等待该库更新适配版本,或寻找替代方案。
4. 重置iOS原生构建文件
执行命令重新生成iOS原生配置文件,确保所有配置与当前依赖匹配:
npx expo prebuild --clean npx expo run:ios
内容的提问来源于stack exchange,提问作者Doolan
相关产品推荐
相关产品推荐

