Expo先启动Metro服务器后无法读取app.config.js的extra配置问题
Expo Dev Client 无法读取 app.config.js extra 配置的解决方案
1. 替换配置读取方式
在 Expo Dev Client 环境下,Constants.manifest 已不再适配,改用 Constants.expoConfig?.extra 读取配置:
import Constants from 'expo-constants'; // 替换原读取方式 const apiUrl = Constants.expoConfig?.extra?.API_URL;
2. 验证 app.config.js 配置格式
确保配置文件以默认导出方式输出完整的 Expo 配置对象,示例:
export default { expo: { name: 'YourApp', slug: 'your-app-slug', // 其他基础配置项... extra: { API_URL: 'https://your-api-domain.com', someKey: 'someValue' } } };
3. 清除缓存并重装应用
dev-client 模式下缓存可能导致配置未同步,执行以下操作:
- 清除 Metro 缓存:运行
npx expo start --dev-client --clear - 卸载 iOS 模拟器/物理设备上的应用,重新通过
expo run:ios安装(此步骤会将最新配置打包进应用) - 再次启动
expo start --dev-client连接应用
4. 物理设备场景的额外处理
针对先装应用再启动 Metro 的需求:
- 必须通过
expo run:ios完成应用安装(该命令会把当前app.config.js的 extra 配置写入应用) - 启动 Metro 时,若设备和电脑不在同一局域网,添加
--host tunnel参数建立隧道连接:expo start --dev-client --host tunnel
内容的提问来源于stack exchange,提问作者Lasharela
相关产品推荐
相关产品推荐

