我遵循了有关如何保护API密钥的教程,这使我将API密钥放置在gradle.properties
文件中。这使我可以使用BuildConfig.apiKey
访问密钥。我将其设置如下:
gradle.properties
apiKey=mykeyishere
build.gradle(应用程序)
def API_KEY = '"' + apiKey + '"' ?: '"API Key: Not provided"'
defaultConfig {
...
each { type ->
type.buildConfigField STRING, 'apiKey', API_KEY
}
manifestPlaceholders = [
MY_KEY: API_KEY
]
}
清单
<meta-data
android:name="apiKey"
android:value="{$MY_KEY}" />
到目前为止,除了manifestPlaceholders之外,其他所有东西都可以正常工作。当我对字符串进行硬编码或使用strings.xml
时,访问正在使用的服务(我正在使用Facebook和Google进行登录)时没有任何问题,但是当我使用manifestPlaceholders时会出错