Google vous recommande vivement de ne pas vérifier une clé API dans votre système de contrôle des versions. Vous devez plutôt la stocker dans un fichier secrets.properties
local, qui se trouve dans le répertoire racine de votre projet, mais qui est exclu du contrôle des versions. Ensuite, utilisez le plug-in Secrets Gradle pour Android afin de lire la clé API.
Ce plug-in lit les secrets, y compris la clé API, à partir d'un fichier de propriétés qui n'est pas vérifié dans un système de contrôle des versions. Le plug-in expose ensuite ces propriétés comme variables dans la classe BuildConfig
générée par Gradle ainsi que dans le fichier manifeste Android.
Pour obtenir un exemple complet d'utilisation du plug-in Secrets Gradle pour Android afin d'accéder à une clé API, consultez Configurer un projet Android Studio.
Installation et utilisation
Pour installer le plug-in Secrets Gradle pour Android dans votre projet Google Maps :
-
Dans Android Studio, ouvrez votre fichier
build.gradle
oubuild.gradle.kts
de premier niveau et ajoutez le code suivant à l'élémentdependencies
sousbuildscript
.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") } }
-
Ouvrez le fichier
build.gradle
au niveau du module et ajoutez le code suivant à l'élémentplugins
.Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- Dans le fichier
build.gradle
au niveau du module, assurez-vous quetargetSdk
etcompileSdk
sont définis sur 34. - Enregistrez le fichier et synchronisez votre projet avec Gradle.
-
Ouvrez le fichier
secrets.properties
dans votre répertoire de premier niveau et ajoutez le code suivant. RemplacezYOUR_API_KEY
par votre clé API. Stockez votre clé dans ce fichier, carsecrets.properties
n'est pas vérifié dans un système de contrôle des versions.MAPS_API_KEY=YOUR_API_KEY
- Enregistrez le fichier.
-
Créez le fichier
local.defaults.properties
dans votre répertoire de premier niveau (même dossier que le fichiersecrets.properties
), puis ajoutez le code suivant.MAPS_API_KEY=DEFAULT_API_KEY
Ce fichier a pour but de fournir un emplacement de sauvegarde de la clé API, à utiliser si le fichier
secrets.properties
est introuvable pour éviter l'échec des créations. Cette situation peut se produire si vous clonez l'application à partir d'un système de contrôle des versions qui ometsecrets.properties
et que vous n'avez pas encore créé de fichiersecrets.properties
localement pour fournir votre clé API. - Enregistrez le fichier.
-
Dans votre fichier
AndroidManifest.xml
, accédez àcom.google.android.geo.API_KEY
, puis modifiez leandroid:value attribute
. Si le tag<meta-data>
n'existe pas, créez-le comme enfant du tag<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.*" }
Étapes suivantes
- Affichez la page du projet GitHub concernant le plug-in Secrets Gradle pour Android.
- Consultez Configurer un projet Android Studio pour obtenir un exemple complet d'utilisation du plug-in.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/08/13 (UTC).
[null,null,["Dernière mise à jour le 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."]]],[]]