React Native iOS模拟器无应用连接,重载失败问题求助
排查React Native 0.69.2 iOS模拟器无连接+卡启动页问题
针对你遇到的iOS模拟器卡启动页、Metro提示warn No apps connected. Sending "reload" to all React Native apps failed.的问题,在你已尝试的方案之外,可按以下步骤进一步排查:
一、检查原生端Metro连接配置
打开iOS项目的AppDelegate.mm(或AppDelegate.m),确认Debug模式下的bundle URL配置正确:
#ifdef DEBUG return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; #else return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; #endif
若使用Apple Silicon芯片Mac,可尝试手动指定bundle URL为本地IP:
#ifdef DEBUG return [NSURL URLWithString:@"http://0.0.0.0:8081/index.bundle?platform=ios"]; #else return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; #endif
二、排查网络与端口占用
- 检查Metro默认端口8081是否被占用:
若有占用进程,执行lsof -i :8081kill -9 <PID>(PID为输出中的进程ID)终止后重启Metro。 - 在iOS模拟器的Safari中访问
http://localhost:8081/index.bundle?platform=ios,若能下载bundle文件则网络正常;否则检查防火墙设置或Mac的网络共享配置。 - 启动Metro时指定监听所有IP:
yarn start --host 0.0.0.0
三、Xcode构建配置检查
- 打开Xcode的Build Settings:
- 确认
DEAD_CODE_STRIPPING在Debug模式下设置为NO,避免Metro相关代码被剥离。 - 确认
OTHER_LDFLAGS包含-ObjC和-lc++,这是React Native必需的链接标志。
- 确认
- 查看Xcode控制台日志(路径:
Window > Devices and Simulators > 选中对应模拟器 > Open Console),查找启动阶段的报错信息(如第三方库初始化失败、依赖缺失等),这通常是卡启动页的核心原因。 - 确认Debug模式下的Provisioning Profile配置正常(模拟器无需真机证书,但错误配置可能导致启动异常)。
四、深层清理缓存与依赖
- 清理React Native全局缓存:
rm -rf ~/.rncache - 清理Xcode Derived Data:打开Xcode偏好设置(
Xcode > Preferences > Locations),点击Derived Data后的箭头,删除文件夹内所有内容。 - 完全重置依赖:
rm -rf node_modules && yarn install cd ios && pod deintegrate && pod install
五、模拟器特殊设置排查
- 打开模拟器
Settings > Developer > Debugging,确认Allow HTTP Services已开启(iOS 14+默认限制非HTTPS请求,Metro默认使用HTTP)。 - 重置模拟器:点击模拟器菜单
Hardware > Erase All Content and Settings,之后重新安装应用。
六、对比空白项目验证
创建一个同版本的空白React Native项目测试:
npx react-native init TestProject --version 0.69.2 cd TestProject && npx react-native run-ios
若空白项目正常运行,说明当前项目存在特定依赖或配置问题,可逐步迁移代码、添加依赖来定位故障点。
内容的提问来源于stack exchange,提问作者dev1ce
相关产品推荐
相关产品推荐

