Google recomienda que no registres una clave de API en tu sistema de control de versión. En cambio, debes almacenarla en un archivo local secrets.properties
, que se encuentra en el directorio raíz de tu proyecto, pero se excluye del control de versión, y, luego, usar el complemento Secrets Gradle para Android para leer la clave de API.
El complemento Secrets Gradle para Android lee los secretos, incluida la clave de API, de un archivo de propiedades que no se registró en un sistema de control de versión. Luego, el complemento expone esas propiedades como variables en la clase BuildConfig
generada por Gradle y en el archivo de manifiesto de Android.
Si deseas ver un ejemplo completo de cómo usar el complemento Secrets Gradle para Android y así acceder a una clave de API, consulta Configura un proyecto de Android Studio.
Instalación y uso
Si deseas instalar el complemento Secrets Gradle para Android en tu proyecto de Google Maps, haz lo siguiente:
-
En Android Studio, abre el archivo
build.gradle
obuild.gradle.kts
de nivel superior y agrega el siguiente código al elementodependencies
enbuildscript
.Groovy
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
-
Abre el archivo
build.gradle
a nivel del módulo y agrega el siguiente código al elementoplugins
.Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- En tu archivo
build.gradle
a nivel del módulo, asegúrate de quetargetSdk
ycompileSdk
se hayan establecido en 34. - Guarda el archivo y sincroniza tu proyecto con Gradle.
-
Abre el archivo
secrets.properties
en tu directorio de nivel superior y, luego, agrega el siguiente código. ReemplazaYOUR_API_KEY
por tu clave de API. Almacena tu clave en ese archivo porquesecrets.properties
no se registra en un sistema de control de versión.MAPS_API_KEY=YOUR_API_KEY
- Guarda el archivo.
-
Crea el archivo
local.defaults.properties
en tu directorio principal, en la misma carpeta en la que se encuentra el archivosecrets.properties
, y luego agrega el siguiente código.MAPS_API_KEY=DEFAULT_API_KEY
El propósito de este archivo es proporcionar una ubicación de copia de seguridad de la clave de API en caso de que no se encuentre el archivo
secrets.properties
, de modo que las compilaciones no fallen. Esto puede ocurrir si clonas la app desde un sistema de control de versión que omitesecrets.properties
y aún no creaste un archivosecrets.properties
localmente para proporcionar tu clave de API. - Guarda el archivo.
-
En tu archivo
AndroidManifest.xml
, ve acom.google.android.geo.API_KEY
y actualizaandroid:value attribute
. Si la etiqueta<meta-data>
no existe, créala como un elemento secundario de la etiqueta<application>
.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
Note:
com.google.android.geo.API_KEY
is the recommended metadata name for the API key. A key with this name can be used to authenticate to multiple Google Maps-based APIs on the Android platform, including the Maps SDK for Android. For backwards compatibility, the API also supports the namecom.google.android.maps.v2.API_KEY
. This legacy name allows authentication to the Android Maps API v2 only. An application can specify only one of the API key metadata names. If both are specified, the API throws an exception. -
In Android Studio, open your module-level
build.gradle
orbuild.gradle.kts
file and edit thesecrets
property. If thesecrets
property does not exist, add it.Edit the properties of the plugin to set
propertiesFileName
tosecrets.properties
, setdefaultPropertiesFileName
tolocal.defaults.properties
, and set any other properties.Groovy
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Kotlin
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Próximos pasos
- Consulta la página del proyecto de GitHub del complemento Secrets Gradle para Android.
- Consulta Configura un proyecto de Android Studio para obtener un ejemplo completo de cómo usar el complemento.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-08-13 (UTC)
[null,null,["Última actualización: 2024-08-13 (UTC)"],[[["Securely manage your Google Maps API key using the Secrets Gradle Plugin for Android, avoiding storage in version control."],["The plugin reads your API key from a local `secrets.properties` file and makes it accessible in your `BuildConfig` and manifest."],["Install the plugin by adding it as a dependency and applying it in your Gradle files, then configure it to locate your API key."],["Utilize the `local.defaults.properties` file to provide a fallback API key for builds and prevent failures when the `secrets.properties` file is missing."],["Refer to the plugin's GitHub page and the setup guide for detailed information and a comprehensive example."]]],[]]