我有一些密码和API密钥需要在我的应用程序中使用。
在我之前使用的其他开发环境中,我们会创建一个.env文件,将所有敏感数据放入其中,将该.env文件保存到密码管理器中,然后让开发人员下载它以启动项目,并让项目读取 .env文件以供使用。.env文件永远不会提交到存储库中,并设置为git忽略它。
在使用Java进行Android开发中,最好的方法是什么?
我有一些密码和API密钥需要在我的应用程序中使用。
在我之前使用的其他开发环境中,我们会创建一个.env文件,将所有敏感数据放入其中,将该.env文件保存到密码管理器中,然后让开发人员下载它以启动项目,并让项目读取 .env文件以供使用。.env文件永远不会提交到存储库中,并设置为git忽略它。
在使用Java进行Android开发中,最好的方法是什么?
你可以创建一个属性文件,将其放在应用程序的文件夹下并将其添加到.gitignore:
名为passwords.properties的属性文件内容示例:
password1=123456
password2=qwerty
def passwordsPropertiesFile = rootProject.file("app/passwords.properties")
def passwordsProperties = new Properties()
passwordsProperties.load(new FileInputStream(passwordsPropertiesFile))
为了在Gradle文件中使用并获取一个值,请使用以下方式:
passwordsProperties['password1']
defaultConfig {
applicationId "some.app.id"
minSdkVersion 21
targetSdkVersion 30
...
buildConfigField "String", "PASSWORD1", passwordsProperties['password1']
}
或者在buildTypes部分设置BuildConfig变量来为特定的构建类型添加它:
buildTypes {
debug {
buildConfigField "String", "PASSWORD1", passwordsProperties['debug_password1']
}
prod {
buildConfigField "String", "PASSWORD1", passwordsProperties['prod_password1']
}
}
要在应用程序代码中使用该值,请使用:
BuildConfig.PASSWORD1
build.gradle
是被检查的,因为它包含了正确的配置/库位置。也许你想到的是gradle.properties
?请参阅:https://developer.android.com/studio/build#properties-files - Morrison Chang