Khe*_*dar 4 api android google-maps android-studio android-gradle-plugin
我使用众多选项之一将我的 API 密钥存储在计算机/钥匙串中,而不是直接存储在云备份项目代码中(即gradle-credentials-plugin)。我想要的是能够以类似的方式管理 Google Maps 密钥,但它们在不同的文件中使用(Manage Google Maps API Key with Gradle in Android Studio)。
如果有人有一个简单(或复杂但可靠)的选项供我深入研究,我将不胜感激!
您可以使用manifestPlaceholders从您的build.gradle.
local.propertiesgoogle.maps_api_key=SECRET_KEY
Run Code Online (Sandbox Code Playgroud)
.gitignore:local.properties
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml. 使用withInputStream()确保InputStream 自动关闭。android{
defaultConfig {
// Load credentials.
def properties = new Properties()
file("../local.properties").withInputStream { properties.load(it) }
// Share the key with your `AndroidManifest.xml`
manifestPlaceholders = [ googleMapsApiKey:"${properties.getProperty('google.maps_api_key')}"]
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml:<application>
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${googleMapsApiKey}" />
Run Code Online (Sandbox Code Playgroud)
Shadowsheep 的解决方案有效,但这并不是我真正想要做的。
我最终做了什么。
首先,我错误地认为绝对有必要使用密钥填充google-maps-api.xml,而显然在清单中设置密钥就足够了。
其次,我<meta-data android:name="com.google.android.geo.API_KEY" android:value"@string/GoogleMapsApiKey">在清单中添加了一行
第三,我通过我选择的工具(etiennestuder的gradle-credentials-plugin)设置了mapsKey
最后,我将这两行添加到应用程序的模块build.gradle部分中: buildTypes
defmapsKey=credentials.GOOGLE_MAPS_API_KEY?:“密钥丢失”
it.resValue“字符串”,“GoogleMapsApiKey”,mapsKey
| 归档时间: |
|
| 查看次数: |
1281 次 |
| 最近记录: |