EAS Build环境变量优先级确认及管理最佳实践咨询
EAS Build 环境变量优先级与最佳实践
一、环境变量优先级(从高到低)
- 命令行
--env标志:优先级最高,通过eas build --env API_URL=https://example.com这类方式传递的变量,会直接覆盖eas.json和EAS Secrets里的同名变量。 - EAS Secrets:优先级高于
eas.json。如果同一变量(比如API_URL)同时在EAS Secrets和eas.json中定义,最终生效的是EAS Secrets存储的值。 eas.json的env属性:优先级最低,仅当同名变量未通过前两种方式定义时,才会使用此处的值。
二、环境变量管理最佳实践
1. 处理敏感密钥(如API密钥、加密密钥)
- 绝对不要将敏感密钥写入
eas.json,该文件通常会提交到Git仓库,极易造成信息泄露。 - 所有敏感变量必须通过
eas secret:create命令存储到EAS Secrets,它会加密存储在Expo服务器,仅构建过程可访问,不会暴露在代码或配置文件中。 - 本地开发时,用
.env文件存放敏感变量,但务必将.env加入.gitignore,禁止提交到仓库。
2. 区分开发与生产环境
- 在
eas.json中配置多个构建profile,比如development、production,每个profile的env字段设置对应环境的非敏感变量(例如开发环境用测试API地址,生产用正式地址)。 - 敏感变量按环境拆分,创建Secrets时给变量加环境前缀,比如
DEV_PAYMENT_KEY和PROD_PAYMENT_KEY,再在项目代码或构建脚本中根据当前环境加载对应变量。 - 本地开发和构建环境保持一致:本地用
expo start --env-file .env.development加载开发环境变量,生产构建直接调用EAS的生产profile,自动加载对应Secrets。
内容的提问来源于stack exchange,提问作者satanmoo
相关产品推荐
相关产品推荐

