如何在 Expo EAS 中针对每个环境使用不同的密钥

Dan*_*lli 5 android ios react-native expo

当运行 eas build 命令来构建或发布 expo 应用程序时,我们如何区分 Expo 中每个环境(开发、预览和生产)的秘密?

从 expo 控制台的秘密屏幕来看,它对于应用程序来说似乎是全局的:

在此输入图像描述

因此,无论您尝试构建时的环境如何,秘密似乎都是相同的。例如,如果我需要预览环境中的 API_KEY env 的值与生产环境中的不同,那么如何使用 expo Secret 来实现这一点?

小智 0

  1. 使用配置文件名称为配置文件特定(开发、生产等)环境变量添加前缀,例如DEVELOPMENT_API_KEY
  2. 根据构建配置文件去除配置文件前缀 - 如下面的代码所示
/* 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));
Run Code Online (Sandbox Code Playgroud)