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

如何让gradlew读取.env.production而非默认.env文件?

React Native构建Release版指定读取.env.production环境变量

下面提供几种可行的实现方式,根据你的项目配置选择适合的方案:

方案一:构建命令临时指定环境文件

直接在执行gradlew命令前通过环境变量指定要读取的.env文件,无需修改配置文件:

cd android
ENVFILE=.env.production ./gradlew bundleRelease

这个方式适合临时切换环境,每次构建时明确指定即可。

方案二:通过Gradle配置自动关联Release环境到.env.production

如果你的项目使用了react-native-config库,修改android/app/build.gradle文件,添加环境文件的映射规则:

// 在文件顶部添加
project.ext.envConfigFiles = [
    debug: ".env",
    release: ".env.production"
]

// 确保下面的apply语句存在(react-native-config安装时会自动添加)
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"

配置完成后,执行./gradlew bundleRelease时,Gradle会自动读取.env.production文件。

方案三:手动配置Gradle读取指定环境变量文件

如果没有使用第三方环境变量库,可以手动在Gradle中编写读取逻辑:

  1. 打开android/app/build.gradle,找到buildTypes下的release块
  2. 添加读取.env.production文件并注入环境变量的代码:
android {
    ...
    buildTypes {
        release {
            ...
            // 读取.env.production文件
            def envFile = file("../.env.production")
            if (envFile.exists()) {
                Properties envProps = new Properties()
                envProps.load(new FileInputStream(envFile))
                // 将环境变量注入到BuildConfig和资源文件中
                envProps.each { key, value ->
                    buildConfigField "String", key, "\"${value}\""
                    resValue "string", key, "\"${value}\""
                }
            }
        }
    }
}

这样Release构建时会自动加载.env.production中的变量。

需要注意的是,如果你之前有配置过默认读取.env的逻辑,确保将其替换或调整为Release环境下优先读取.env.production。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:36:14