React Native集成现有iOS应用时Metro配置报错(错误码1)求助
解决React Native集成现有iOS应用时“找不到Metro”(错误码1)的问题
以下是针对新MacBook Air环境的排查和解决步骤:
确认Metro服务已启动
必须先在React Native项目根目录执行启动命令:npx react-native start不要直接运行iOS项目,确保Metro服务处于运行状态后再启动Xcode里的iOS应用。
检查端口占用与防火墙
- 用命令查看8081端口(Metro默认端口)是否被占用:
如果有结果,用lsof -i :8081kill -9 <进程ID>终止占用进程;也可以换端口启动Metro:
同时在iOS项目的AppDelegate里同步修改端口号。npx react-native start --port 8082 - 暂时关闭Mac系统防火墙(系统设置 → 网络 → 防火墙),测试是否是防火墙拦截了Metro连接。
- 用命令查看8081端口(Metro默认端口)是否被占用:
修正iOS项目网络配置
在项目的Info.plist中添加以下配置,允许本地网络请求:<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> <key>NSAllowsLocalNetworking</key> <true/> </dict>若localhost解析有问题,将AppDelegate中的Metro地址替换为Mac的本地IP(比如
http://192.168.x.x:8081/index.bundle...),本地IP可通过ifconfig | grep inet查看。清空缓存并重置环境
执行命令清空RN缓存,避免缓存导致的异常:npx react-native start --reset-cache同时检查Node.js版本是否符合React Native要求(推荐LTS版本),用
node -v确认版本,版本不兼容可通过nvm切换。排除代理/VPN干扰
关闭当前运行的VPN或代理工具,代理可能会拦截本地Metro服务的请求。
内容的提问来源于stack exchange,提问作者satheeswari s
相关产品推荐
相关产品推荐

