Complemento Secrets Gradle

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 Cómo configurar 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:

  1. En Android Studio, abre el archivo build.gradle o build.gradle.kts de nivel superior y agrega el siguiente código al elemento dependencies en buildscript.

    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")
        }
    }
    
  2. Abre el archivo build.gradle a nivel del módulo y agrega el siguiente código al elemento plugins.

    Groovy

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }

    Kotlin

    plugins {
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }
  3. En tu archivo build.gradle a nivel del módulo, asegúrate de que targetSdk y compileSdk se hayan establecido en 34.
  4. Guarda el archivo y sincroniza tu proyecto con Gradle.
  5. Abre el archivo secrets.properties en tu directorio de nivel superior y, luego, agrega el siguiente código. Reemplaza YOUR_API_KEY por tu clave de API.
    MAPS_API_KEY=YOUR_API_KEY
  6. Guarda el archivo.
  7. En tu archivo AndroidManifest.xml, ve a com.google.android.geo.API_KEY y actualiza android: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}" />
  8. In Android Studio, open your module-level build.gradle or build.gradle.kts file and edit the secrets property. If the secrets property does not exist, add it.

    Edit the properties of the plugin to set propertiesFileName to secrets.properties, set defaultPropertiesFileName to the name of your local properties file (either local.properties or local.defaults.properties depending on how you created the project), 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