首页 > 解决方案 > 如何在反应原生上下文中将环境变量传递给 Android 构建

问题描述

我的 react native 代码使用环境变量来指定它命中的 API 的 URL,因此我可以在 react-native js 代码中执行类似的操作: const endpoint = process.env['API_URL']

在计算机上运行应用程序时,很容易在启动捆绑程序时传入环境变量: API_URL='http://myapiurl.com' react-native start

但是,当我生成我的发布 apk 时,API_URL 没有设置。

我在 gradle 构建(或其他地方)中在哪里配置它,以便为生成的发布 apk 正确设置 API_URL?

标签: androidreact-native

解决方案


让它工作的快速方法:

确保将环境变量传递给 gradle build 命令 API_URL='myapiurl.com' ./gradlew assembleRelease

另一种更可持续的方法:

我建议你研究这个项目:

https://github.com/luggit/react-native-config

它允许您指定 .env 文件以将变量导入代码。

您甚至可以通过命名文件来指定不同的环境

.env.{environment}

例如

.env.development
.env.production

它还允许您指定捆绑应用程序时要使用的环境。

这是一个安卓的例子:

project.ext.envConfigFiles = [
    debug: ".env.development",
    release: ".env.production",
]

apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"

这些示例取自项目的自述文件。


推荐阅读