如何在Expo EAS本地构建中配置SENTRY_AUTH_TOKEN且不暴露于eas.json
Expo EAS本地构建安全配置Sentry令牌的最佳方案
针对你遇到的本地构建时SENTRY_AUTH_TOKEN暴露问题,这里有几个经过验证的安全方案,按推荐优先级排序:
1. 使用本地EAS Secrets(最推荐)
EAS CLI支持在本地存储项目级别的secrets,和云端EAS Secret的逻辑完全一致,无需修改eas.json也不会暴露令牌:
- 运行命令将令牌存入本地EAS Secrets:
eas secret:push --scope project --name SENTRY_AUTH_TOKEN --value "你的Sentry令牌" - 之后执行
eas build --local时,EAS会自动读取这个本地secret,和云端构建的体验完全一致,且令牌不会出现在任何可提交的文件中。
2. 环境变量+eas.json引用(配合.gitignore)
如果习惯用.env管理环境变量,可按以下步骤调整:
- 在项目根目录创建
.env文件,写入:SENTRY_AUTH_TOKEN=你的Sentry令牌 - 将
.env添加到.gitignore,避免提交到仓库。 - 在
eas.json的对应构建profile中,通过环境变量占位符引用:{ "build": { "development": { "developmentClient": true, "distribution": "internal", "env": { "SENTRY_AUTH_TOKEN": "${SENTRY_AUTH_TOKEN}" } } } } - 注意:如果之前用
.env没成功,大概率是.env位置不对(必须在项目根目录),或者eas.json里没有正确配置env字段来引用变量。
3. 命令行临时传递令牌(适合偶尔构建)
如果只是偶尔本地构建,可直接在命令行临时传递变量:
SENTRY_AUTH_TOKEN="你的Sentry令牌" eas build --local
这种方式不需要任何配置文件修改,用完即失效,适合临时场景。
最佳实践总结
- 绝对不要将
SENTRY_AUTH_TOKEN明文写入eas.json(因为该文件需要提交到仓库)。 - 优先使用本地EAS Secrets,它和云端Secret的管理逻辑统一,无需额外维护
.env文件。 - 若使用
.env,务必确保它被加入.gitignore,且eas.json正确引用变量。
内容的提问来源于stack exchange,提问作者magnetarneo
相关产品推荐
相关产品推荐

