android - 如何在反应原生上下文中将环境变量传递给 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?
解决方案
让它工作的快速方法:
确保将环境变量传递给 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"
这些示例取自项目的自述文件。
推荐阅读
- kotlin - IntelliJ 后端 (JVM) 内部错误:生成了错误的字节码。Kotlin runBlocking 函数
- python - 如何将祖鲁时间戳转换为本地时区?
- swift - 我的 Mac 应用程序:无法从 finder 获取执行文件的文件名和路径
- delphi - 实际上非常相似的不同实现的合理化
- mongodb - 我的 axios 删除方法在 post 方法工作时不起作用
- ansible - 删除 Ansible 变量中的前导零
- java - 我该如何解决:java.sql.SQLException:找不到适合 jdbc:mysql//localhost 的驱动程序?
- git - 我应该如何将全栈项目上传到 github,后端文件夹中有现有的 .git 文件?
- android - 在 Android 中显示对话框时有没有办法告诉应用程序显示弹出窗口?
- python - 当我运行格式时,Visual Studio 代码 python 扩展失败