我如何在响应本机上下文中将环境变量传递给Android构建

时间:2018-12-16 03:18:26

标签: android react-native

我的react本机代码使用环境变量来指定它命中的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?

1 个答案:

答案 0 :(得分:1)

使其正常运行的快速方法:

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

另一种更可持续的方法:

我建议您研究一下这个项目:

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

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

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

.env.{environment}

例如

.env.development
.env.production

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

以下是android的示例:

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

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

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