Expo更新时环境变量未生效,如何让eas.json配置生效?
Expo EAS Update 环境变量优先级问题修复方案
问题根源
本地.env.local文件的环境变量优先级高于eas.json中配置的环境变量,导致执行eas update时始终加载本地配置,而非preview环境的预设值。
修复方案
1. 临时禁用本地.env文件(单次构建)
执行eas update前临时重命名.env.local,避免其被加载,完成后恢复:
mv .env.local .env.local.tmp && eas update --branch staging --message "feat(onboarding): navigation" && mv .env.local.tmp .env.local
2. 指定构建Profile并禁用本地env文件(推荐)
通过--profile参数明确指定使用eas.json中的preview配置,同时添加--no-env-file参数强制忽略本地.env文件,确保preview环境的变量生效:
eas update --branch staging --profile preview --no-env-file --message "feat(onboarding): navigation"
3. 规范环境变量文件命名(长期方案)
为不同环境创建独立的env文件(如.env.development、.env.preview、.env.production),执行eas update时通过--env-file参数指定对应环境的文件,彻底避免本地开发配置与构建配置冲突:
eas update --branch staging --env-file .env.preview --message "feat(onboarding): navigation"
同时可在eas.json的preview profile中预设envFile字段,后续执行时无需每次指定:
{ "build": { "preview": { "envFile": ".env.preview", // 其他配置... } }, "submit": { // 提交配置... } }
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

