Google настоятельно рекомендует не добавлять ключ API в системы контроля версий. Вместо этого сохраните ключ в локальном файле secrets.properties
, который находится в корневом каталоге проекта (не проверяется системами контроля версий), и используйте для его чтения плагин Secrets Gradle для Android.
Плагин Secrets Gradle для Android считывает ключ API и другие секретные данные из файла свойств, который не хранится в системе контроля версий. Затем плагин указывает эти свойства в качестве переменных в созданном Gradle классе BuildConfig
и файле манифеста для Android.
Полный пример использования плагина Secrets Gradle для доступа к ключу описан в статье Настройка проекта Android Studio.
Установка и использование
Чтобы установить плагин Secrets Gradle для Android в проект Google Карт:
-
В Android Studio откройте файл
build.gradle
илиbuild.gradle.kts
верхнего уровня и добавьте в элементdependencies
, принадлежащий элементу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") } }
-
Откройте файл
build.gradle
уровня модуля и добавьте в элементplugins
приведенный ниже код.Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- В файле
build.gradle
уровня модуля убедитесь, что дляtargetSdk
иcompileSdk
задано значение 34. - Сохраните файл и синхронизируйте проект с Gradle.
-
Откройте файл
secrets.properties
в каталоге верхнего уровня и добавьте приведенный ниже код. Укажите вместоYOUR_API_KEY
свой ключ API. Храните свой ключ в этом файле, посколькуsecrets.properties
не проверяется системой управления версиями.MAPS_API_KEY=YOUR_API_KEY
- Сохраните файл.
-
Создайте файл
local.defaults.properties
в директории верхнего уровня (в той же папке, где хранится файлsecrets.properties
), а затем добавьте указанный ниже код.MAPS_API_KEY=DEFAULT_API_KEY
Этот файл служит запасным хранилищем ключа API, чтобы обеспечить выполнение сборки, даже если система не обнаружит файл
secrets.properties
. Так может произойти, если вы скопируете приложение из системы управления версиями (она проигнорирует файлsecrets.properties
) и не создадите файлsecrets.properties
с ключом API локально. - Сохраните файл.
-
В файле
AndroidManifest.xml
найдите разделcom.google.android.geo.API_KEY
и обновитеandroid:value attribute
. Если тег<meta-data>
не существует, создайте его как дочерний элемент для тега<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.*" }
Что дальше
- Посетите страницу проекта Плагин Secrets Gradle для Android на GitHub.
- Ознакомьтесь с полным примером использования плагина в статье Настройка проекта Android Studio.
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2024-07-03 UTC.
[null,null,["Последнее обновление: 2024-07-03 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."]]],[]]