This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

EAS 中的环境变量

编辑页面

关于如何在构建、更新和工作流中使用 Expo Application Services (EAS) 环境变量的概述。


本指南说明了如何在 Expo Application Services(EAS)中使用环境变量:Build、Updates、Workflows 和 Hosting。有关环境变量在 Expo 框架中如何工作的通用信息,请参阅 Expo 中的环境变量

在本地开发期间,环境变量会从本地 .env.env.local 文件中加载。此类文件通常会被排除在项目的版本控制之外(也就是说,如果它们被列在 .gitignore 文件中,或者没有提交),因此对于在远程服务器上运行的任务不可用,例如 EAS Build 和 EAS Workflows。此外,大多数项目都有多个应用变体,并且需要多组环境变量(例如开发环境和生产环境)。

为什么使用 EAS 环境变量

如果你需要以下功能,可能会想使用 EAS 环境变量:

  • 将云构建、更新和工作流的配置集中在一个地方,而无需提交 .env 文件。
  • 按环境(developmentpreviewproduction)分离值,同时复用名称。
  • 控制可见性(明文、敏感、密钥),以便只有正确的范围可以读取每个值。
  • 通过 eas env:pull 或在 CI/CD 中本地应用相同的一组变量。

这些正是 EAS 环境变量要解决的问题。使用 EAS 环境变量时,变量可通过 EAS CLI 或直接在 expo.dev 控制台中配置,并且 EAS Build 和 EAS Workflows 以及你的本地机器都可以通过 EAS CLI 访问这些变量。

快速开始

1

要创建一个新的环境变量,请使用 EAS CLI,并在你的项目目录中运行以下命令。下面的命令会为 production 环境创建一个名为 EXPO_PUBLIC_API_URL、值为 https://api.example.com 的新环境变量。

Terminal
eas env:set --name EXPO_PUBLIC_API_URL --value https://api.example.com --environment production --visibility plaintext

2

通过确认它在项目设置中的 环境变量 中显示 production 徽标,来验证环境变量是否已成功创建。环境变量也可以直接在 expo.dev 上管理。

3

要在 EAS Build 中使用该环境变量,请在 production 构建配置中添加 environment 字段:

eas.json
{ "build": { "production": { "environment": "production" } } }

现在,为 production 构建配置创建的任何环境变量都将在构建过程中可用。

4

要在 EAS Update 中使用该环境变量,请运行带有指定 --environment 标志的 eas update 命令:

Terminal
eas update --environment production

--environment 标志用于指定更新任务所使用的环境。更新过程中只会使用所指定环境中的环境变量。

5

要在 EAS Hosting 中使用该环境变量,请运行带有指定 --environment 标志的 eas deploy 命令。如果你同时需要客户端和服务端环境变量,请按以下顺序运行下面的命令(客户端变量必须是明文或敏感,不能是密钥),并查看 客户端环境变量 了解更多信息。

Terminal
eas env:pull --environment production
npx expo export --platform web
eas deploy --environment production

--environment 标志用于指定部署任务所使用的环境。部署过程中只会使用所指定环境中的环境变量。

关键概念

可用环境

默认情况下,EAS 为环境变量支持三个环境:developmentpreviewproduction。自定义环境名称适用于 Enterprise 和 Production 套餐。

每个环境都是一组独立的变量,可用于在不同场景下自定义你的应用。例如,你可以为开发和生产使用不同的 API 密钥,或者为应用商店发布使用不同的 bundle 标识符。

每个 EAS Build 和 Workflows 任务都会使用某个可用环境中的环境变量运行。你也可以将环境用于更新,从而允许你为构建任务使用同一组环境变量。在发布更新时,请使用所需的 --environment 标志指定环境。

环境变量可以分配到多个环境中,并在所有环境中保持相同的值,也可以只为单个环境创建。

作用域

  • 项目范围:仅属于单个 EAS 项目。你可以在项目控制台中导航到 Environment variables 页面来创建、查看和管理它们。这些环境变量可用于在 EAS 服务器上运行的任何任务,以及此项目的更新。如果其可见性设置允许,也可以将它们拉取到本地用于开发。
  • 账户范围:在你的 EAS 账户中的所有项目中都可用。你可以在账户控制台中导航到 Environment variables 页面来创建、查看和管理它们。这些环境变量可与某个项目的项目范围变量一起,供在 EAS 服务器上运行的任务和更新使用。如果其 可见性设置 允许,也可以将它们拉取到本地或在 EAS 服务器之外读取。

变量类型

  • 字符串:标准键值对,可用于构建、更新、工作流和托管。
  • 文件:作为文件上传的值(例如 google-services.json 或证书),会在构建运行器上作为文件路径提供给任务使用。

环境变量的可见性设置

每个环境变量都有三种不同的可见性设置可用:

可见性描述
明文在网站、EAS CLI 和日志中可见。
敏感在 EAS Build 和 Workflows 的任务日志中会被混淆。你可以通过切换开关让它们在网站上可见。它们也可以在 EAS CLI 中读取。
密钥不能在 EAS 服务器之外读取,包括网站和 EAS CLI 中。它们在 EAS Build 和 Workflows 的任务日志中会被混淆。

接下来去哪里

在 EAS 中创建和管理环境变量

了解如何使用 EAS 控制台和 EAS CLI 创建、划分作用域并使用环境变量。

在 EAS 中使用环境变量

了解如何在 EAS 构建、更新、托管和工作流任务中使用环境变量。

不使用 EAS 时使用环境变量

了解在 Expo 和 React Native 项目中管理环境变量的非 EAS 方式。

常见问题

有关 EAS 中环境变量的常见问题。