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

时间:2019-11-18 10:56:17

标签: 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}"

谢谢!

3 个答案:

答案 0 :(得分:2)

   => permission   

        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>


   put in =>  \android\app\src\main\AndroidManifest  inside    / application   


   <meta-data
    android:name="com.google.android.geo.API_KEY" 
    android:value="Your Google maps API Key Here"/>

https://medium.com/@samil.mehdiyev/integrating-google-maps-in-react-native-app-on-ios-656da9f1e40f

答案 1 :(得分:1)

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

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

在您的AndroidManifest.xml上,

android:value="${API_KEY}"

答案 2 :(得分:0)

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

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

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

android:value="${API_KEY}"