使用expo-dev-client的开发构建无法连接开发服务器,求原因分析
Expo Dev Client + EAS 开发构建无法连接开发服务器的常见原因
1. 开发服务器未正常启动或端口被占用
- 执行
npx expo start --dev-client后,检查终端是否有报错日志,比如提示8081端口被其他进程占用。可通过lsof -i :8081(Mac/Linux)或netstat -ano | findstr :8081(Windows)定位占用进程,终止后重新启动服务器。 - 确认终端是否输出
Metro Bundler启动成功的信息,比如Metro waiting on exp://172.20.1.160:8081,若没有则说明Metro打包进程未正常启动。
2. 设备与开发机的网络连通问题
- 确保手机/模拟器和开发电脑处于同一局域网,验证设备能否ping通报错信息中的开发机IP(172.20.1.160)。
- 临时关闭开发电脑的防火墙,避免防火墙拦截8081端口的连接请求。
- 若使用模拟器,尝试重启模拟器或切换其网络模式,排查网络映射异常问题。
3. Expo Dev Client 构建或配置问题
- 确认开发构建是通过
eas build --profile development命令生成的,且构建环境的Node版本、Expo SDK版本与本地开发环境完全一致。 - 检查项目
app.json/app.config.js中的scheme配置是否正确,开发客户端需要匹配的scheme才能关联开发服务器。 - 尝试重新构建开发客户端,排除旧构建缓存导致的配置异常。
4. Metro 配置或项目依赖问题
- 检查项目根目录的
metro.config.js是否存在错误配置(如自定义resolver、transformer逻辑),可暂时恢复默认配置测试。 - 执行
npm install或yarn install重新安装项目依赖,排除依赖缺失或版本不兼容导致的Metro启动失败。
内容的提问来源于stack exchange,提问作者hayata_suenaga
相关产品推荐
相关产品推荐

