访问React-Native AndroidManifest.xml中的环境变量

eni9jsuy  于 2023-03-24  发布在  React
关注(0)|答案(3)|浏览(107)

我是React Native的新手。手头的任务是在AndroidManifest.xml中设置我的Google API密钥,当推送到GitHub时不暴露它。我设置了一个名为API_KEY的环境变量,但无论我想在.xml中**访问它,我在尝试启动开发服务器时得到一个错误。
到目前为止我试过:

android:value=${env.API_KEY}
android:value="${env.API_KEY}"
android:value="${API_KEY}"

谢谢大家!

daupos2t

daupos2t1#

基于第二条评论(来自kenmistry),对我来说有效的解决方案确实是在build.gradle中创建一个占位符,但是由于某种原因,配置和引用.env文件不起作用,我在build.gradle中调用了我的环境变量:

manifestPlaceholders = [API_KEY: "$System.env.API_KEY"]

并按照kenmistry的建议在.xml中访问它:

android:value="${API_KEY}"
kkbh8khc

kkbh8khc2#

假设你已经在你的.env文件中定义了这个键,你可以在build.gradle上将它设置为manifestPlaceholders

android {
    defaultConfig {
        manifestPlaceholders = [API_KEY: "$process.env.your_key"]
    }
    ...
}

在您的AndroidManifest.xml上,

android:value="${API_KEY}"
hec6srdp

hec6srdp3#

对于上述解决方案不起作用的其他人,我必须在android/app/build.gradle中的android.defaultConfig部分下使用以下语法:

manifestPlaceholders = [MY_ENV_VAR:"${System.getenv("MY_ENV_VAR")}"]

然后在<manifest><application>截面下的android/app/src/main/AndroidManifest.xml

<meta-data android:name="myEnvVar" android:value="${MY_ENV_VAR}" />

相关问题