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

DBe*_*ncz 1 android react-native react-native-android

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

到目前为止,我尝试过:

android:value=${env.API_KEY}
android:value="${env.API_KEY}"
android:value="${API_KEY}"
Run Code Online (Sandbox Code Playgroud)

谢谢!

ken*_*try 10

假设您已在 .env 文件中定义了密钥,则可以将其设置build.gradlemanifestPlaceholders

android {
    defaultConfig {
        manifestPlaceholders = [API_KEY: "$process.env.your_key"]
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

在你的AndroidManifest.xml

android:value="${API_KEY}"
Run Code Online (Sandbox Code Playgroud)


DBe*_*ncz 5

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

manifestPlaceholders = [API_KEY: "$System.env.API_KEY"]
Run Code Online (Sandbox Code Playgroud)

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

android:value="${API_KEY}"
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用。我首先尝试了接受的答案,但是“$process.env.API_KEY”引发了错误“无法获取未知属性“进程””。 (7认同)