Expo开发构建iOS应用扫码提示No bundle URL present问题求助
解决Expo EAS Development构建iOS后出现"No bundle URL present"的问题
问题原因
EAS的Development构建默认不会将JS Bundle打包进App,也未配置自动连接本地打包服务器的参数,导致安装后无法获取bundle地址。而npx expo run:ios是本地直接构建并启动打包服务器,所以能正常运行。
解决方案
1. 配置EAS开发客户端,连接本地打包服务器
修改eas.json中development的iOS配置,添加developmentClient字段,让构建的App支持连接本地开发服务器:
{ "cli": { "version": ">= 3.17.0" }, "build": { "development": { "distribution": "internal", "android": { "gradleCommand": ":app:assembleDebug" }, "ios": { "buildConfiguration": "Debug", "developmentClient": true // 新增配置 }, "env": { "BE_BASE_URL": "https://api.sotravel.me" } }, "preview": { "distribution": "internal" }, "production": { "env": { "BE_BASE_URL": "https://api.sotravel.me" } } }, "submit": { "production": {} } }
构建完成安装后,按以下步骤操作:
- 本地项目根目录运行
npx expo start --dev-client启动打包服务器 - 打开安装好的App,选择连接到本地服务器(同一网络下会自动识别,也可手动输入电脑局域网IP)
2. 预打包JS Bundle,实现离线运行开发包
如果需要无需连接本地服务器就能打开App,可配置EAS构建时将bundle打包进App:
修改eas.json中development的iOS配置,添加jsBundle字段:
"ios": { "buildConfiguration": "Debug", "jsBundle": true // 新增配置 },
然后运行本地构建命令(需本地有Xcode环境):
eas build --profile development --platform ios --local
构建完成后安装App,即可直接打开无需连接服务器。
3. 检查项目基础配置
确保app.json或app.config.js中开启了开发客户端支持:
"expo": { "developmentClient": { "enabled": true }, "ios": { "bundleIdentifier": "你的Bundle ID" } }
内容的提问来源于stack exchange,提问作者Nathan Tew
相关产品推荐
相关产品推荐

