【问题标题】:How to use different secrets for each environment in Expo EAS如何在 Expo EAS 中为每个环境使用不同的秘密
【发布时间】:2022-11-19 22:02:14
【问题描述】:
在运行 eas build 命令构建或发布 expo 应用程序时,我们如何区分 Expo 中每个环境(开发、预览和生产)的秘密?
从 expo 控制台的秘密屏幕来看,它似乎是应用程序的全局:
因此,无论您尝试构建时的环境如何,秘密似乎都是一样的。例如,如果我需要 API_KEY env 的值在预览环境中与生产环境中不同,我如何使用 expo secrets 来实现?
【问题讨论】:
标签:
android
ios
react-native
expo
【解决方案1】:
- 前缀配置文件特定(开发、生产等)带有配置文件名称的环境变量,例如
DEVELOPMENT_API_KEY
- 根据构建配置文件删除配置文件前缀 - 如下面的代码所示
/* app.config.ts */
// Set profile specific environment variables
const profilePrefix = `${process.env.EAS_BUILD_PROFILE?.toUpperCase()}_`;
Object.entries(process.env)
.filter(([key]) => key.startsWith(profilePrefix))
.forEach(([key, value]) => (process.env[key.slice(profilePrefix.length)] = value));