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

如何在终端设置ENVFILE以生成React Native Expo Android发布版AAB?

解决React Native Expo构建AAB时环境变量未生效的问题
  • 确认环境变量配置规范
    若使用.env文件,需确保安装@expo/env(Expo官方推荐)或dotenv依赖。客户端可访问的公开变量必须以EXPO_PUBLIC_为前缀,示例:

    EXPO_PUBLIC_API_BASE=https://your-api.com
    EXPO_PUBLIC_APP_VERSION=1.0.0
    

    仅构建阶段使用的私有变量无需前缀,但需保证构建流程能正确读取。

  • 代码中正确读取变量
    Expo 49及以上版本支持直接通过process.env访问带前缀的公开变量,也可通过expo-constants读取配置中的extra字段:

    import Constants from 'expo-constants';
    
    // 方式1:直接访问process.env(Expo 49+)
    const apiBase = process.env.EXPO_PUBLIC_API_BASE;
    // 方式2:通过expoConfig.extra
    const appVersion = Constants.expoConfig?.extra?.appVersion;
    

    避免直接使用未加EXPO_PUBLIC_前缀的process.env变量,这类变量不会被打包到客户端代码中。

  • 用动态配置文件注入变量
    静态app.json无法读取环境变量,需改用app.config.js或app.config.ts,从.env读取变量并注入到extra字段:

    import '@expo/env/config';
    
    export default {
      expo: {
        name: 'YourApp',
        slug: 'your-app',
        extra: {
          apiBase: process.env.EXPO_PUBLIC_API_BASE,
          // 私有构建变量
          buildKey: process.env.BUILD_KEY,
        },
      },
    };
    
  • 构建AAB时保证变量注入

    • 本地构建:运行eas build --platform android --local,Expo会自动读取本地.env文件中的变量,确保文件存在且路径正确。
    • 云端构建:本地.env不会被上传,需通过Expo CLI添加项目密钥,或在Expo Dashboard的项目设置中配置环境变量:
      eas secret:create --scope project --name EXPO_PUBLIC_API_BASE --value "https://your-api.com"
      
  • 清理构建缓存
    旧缓存可能导致变量未更新,执行以下命令清理:

    expo r -c
    eas build --clear-cache
    
  • 验证变量打包情况
    本地预构建后,检查android/app/src/main/assets/expo-constants.json文件,若其中包含你配置的extra变量,说明配置生效;若未出现,需检查.env或app.config.js的配置是否有误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 00:18:21