我想在上传项目时隐藏API密钥之类的私人信息。所以我想知道是否有一种方法可以像在命令提示符中那样在某处设置环境变量。
例如,我想在google_maps_api.xml
中隐藏我的API密钥
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">API_KEY_HERE</string>
如何在Android Studio中做到这一点?
答案 0 :(得分:1)
根据最佳做法,建议将所有凭据保存在{'a': 1, 'b': 2, 'c': 3}
中,如下所示:
gradle.properties
此文件由Gradle自动导入,因此您可以像这样使用它:
KEYSTORE_PASSWORD=password123
KEY_PASSWORD=password789
GOOGLE_MAP_KEY=API_KEY_HERE
要在课程中使用signingConfigs {
release {
try {
storeFile file("myapp.keystore")
storePassword KEYSTORE_PASSWORD
keyAlias "thekey"
keyPassword KEY_PASSWORD
}
catch (ex) {
throw new InvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.")
}
}
}
,请参考以下内容:
gradle.properties
这将在android {
...
defaultConfig {
...
// defining the google map key
buildConfigField "String", "GOOGLE_MAP_KEY", MAP_KEY
}
}
中生成,并将包含以下字段:
<package_name>.BuildConfig.java
您现在可以通过在任何课程中致电public class BuildConfig {
// ... other generated fields ...
public static final String GOOGLE_MAP_KEY = "API_KEY";
}
直接使用GOOGLE_MAP_KEY。
为了确保所有凭据的安全,请不要在Github等版本控制存储库中提交 gradle.properties 。
答案 1 :(得分:-1)
首先,您应该在src文件夹之外制作.env文件。
然后添加
REACT_APP_WEATHER_API_KEY=123456
用您的API_KEY
替换123456
在提交之前,您应该排除此 .env 文件,因此找到.gitignore
文件并添加.env。
您可以像这样使用这些env变量。
const API_KEY = process.env.REACT_APP_WEATHER_API_KEY;
现在你可以自由了。
别忘了在.gitignore文件中添加.env。
有关更多信息,see this