Mac上React Native模拟器无法连接服务器问题求助
React Native 0.61.2 连接开发服务器失败&Metro卡在99.4%的解决办法
1. 彻底清缓存(大概率解决临时冲突)
- 强制重置Metro缓存启动:
npx react-native start --reset-cache - 清空iOS模拟器数据:
要么关闭模拟器后执行xcrun simctl erase all,要么在模拟器里点「硬件 > 擦除所有内容和设置」 - 重建Node依赖:
rm -rf node_modules rm package-lock.json npm cache clean --force npm install
2. 排查8081端口占用
8081被别的程序占了是常见坑:
- 查占用进程:
lsof -i :8081 - 杀掉进程:
kill -9 <查到的PID>(替换成实际进程号) - 重新启动Metro:
npm start
3. 调整Metro网络绑定
- 启动Metro时绑定所有IP:
npx react-native start --host 0.0.0.0 - 模拟器里打开开发者菜单(Cmd+D),选「Configure Bundler」,确认地址是localhost或者本地局域网IP,端口8081
4. 核对AppDelegate配置
检查iOS项目的AppDelegate.m(或Swift版本):
- 确保
jsCodeLocation是默认自动获取的:jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; - 如果是手动写的URL,确认是
http://localhost:8081/index.bundle,别写错端口或地址
5. 重启核心环境
- 直接重启电脑(很多临时进程、网络冲突靠这个能解决)
- 重启路由器,确保电脑和模拟器在同一WiFi下
6. 适配RN 0.61.x的专属修复
这个版本的Metro有已知兼容问题:
- 安装对应版本的Metro依赖:
npm install metro@0.58.0 metro-core@0.58.0 metro-react-native-babel-preset@0.58.0 --save-dev - 检查
metro.config.js,确保没有错误配置,默认配置如下即可:module.exports = { transformer: { getTransformOptions: async () => ({ transform: { experimentalImportSupport: false, inlineRequires: false, }, }), }, };
内容的提问来源于stack exchange,提问作者Nut Fergie
相关产品推荐
相关产品推荐

