You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions中存储API Key等密钥供Expo构建时读取

Expo GitHub Actions 自动构建环境变量配置方案

存储加密环境变量的位置

直接使用GitHub仓库原生的Secrets功能即可,该功能会自动加密存储内容,所有敏感信息不会明文泄露,操作入口为仓库页的 Settings > Secrets and variables > Actions:

  • 敏感配置(如API密钥、鉴权Token、私有服务地址等)存储在Secrets分类下,该分类内容会在工作流日志中自动打码,避免泄露
  • 非敏感公开配置可以存储在Variables分类下

配置工作流实现Expo正常读取变量

按以下步骤配置GitHub Actions工作流文件即可:

  • 首先在工作流yaml的全局env字段,把GitHub Secrets映射为工作流可读取的环境变量,示例如下:
env:
  EXPO_PUBLIC_API_URL: ${{ secrets.EXPO_PUBLIC_API_URL }}
  EXPO_PUBLIC_API_KEY: ${{ secrets.EXPO_PUBLIC_API_KEY }}
  # 其余所需环境变量按相同格式依次添加
  • 在执行Expo构建命令前,新增生成.env文件的步骤,将变量写入项目根目录的.env文件,示例如下:
- name: 生成.env配置文件
  run: |
    echo "EXPO_PUBLIC_API_URL=${{ env.EXPO_PUBLIC_API_URL }}" > .env
    echo "EXPO_PUBLIC_API_KEY=${{ env.EXPO_PUBLIC_API_KEY }}" >> .env
    # 其余变量依次追加,注意第二条及以后使用>>追加写入,不要用>覆盖已有内容

如果环境变量条目较多,也可以直接把本地完整的.env文件内容作为一个单独的GitHub Secret(命名为ENV_FILE_CONTENT),上述生成步骤可以简化为:

- name: 生成.env配置文件
  run: echo "${{ secrets.ENV_FILE_CONTENT }}" > .env
  • 如果你使用EAS Build,需要确保eas.json中开启了dotenv读取支持,示例配置片段如下:
{
  "build": {
    "production": {
      "experimental": {
        "enableDotenv": true
      }
    }
  }
}

注意事项

  • Expo规定需要注入到客户端代码的环境变量必须以EXPO_PUBLIC_为前缀,否则构建时会自动过滤,不会传入客户端代码;没有该前缀的变量仅能在构建脚本阶段使用
  • 不要把本地的.env文件提交到代码仓库,需要将.env加入.gitignore规则,避免敏感信息泄露

内容的提问来源于stack exchange,提问作者Lance Liam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:15:03