Google zdecydowanie zaleca, aby nie dodawać klucza interfejsu API do
systemu kontroli wersji. Zamiast tego zapisz go w lokalnym
secrets.properties pliku, który znajduje się w katalogu głównym Twojego
projektu, ale jest wykluczony z kontroli wersji. Następnie użyj
wtyczki Gradle obiektów tajnych dla Androida
aby odczytać klucz interfejsu API.
Wtyczka Gradle obiektów tajnych dla Androida odczytuje obiekty tajne, w tym klucz interfejsu API, z pliku właściwości, który nie jest sprawdzany w systemie kontroli wersji. Następnie wtyczka udostępnia te właściwości jako zmienne w wygenerowanej przez Gradle klasie BuildConfig i w pliku manifestu Androida.
Pełny przykład użycia wtyczki Gradle obiektów tajnych dla Androida w celu uzyskania dostępu do klucza interfejsu API znajdziesz w artykule Konfigurowanie projektu w Android Studio.
Instalacja i używanie
Aby zainstalować wtyczkę Gradle obiektów tajnych dla Androida i zapisać klucz interfejsu API:
-
W Android Studio otwórz plik
build.gradle.ktslubbuild.gradlenajwyższego poziomu i dodaj ten kod do blokuplugins.Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false }
Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false }
-
Otwórz plik
build.gradle.ktslubbuild.gradlena poziomie modułu i dodaj ten kod do elementuplugins.Kotlin
plugins { id("com.android.application") // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
Groovy
plugins { id 'com.android.application' // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- Jeśli używasz Android Studio, zsynchronizuj swój projekt z Gradle.
-
Otwórz plik
secrets.propertiesw katalogu najwyższego poziomu, a następnie dodaj ten kod. ZastąpYOUR_API_KEYswoim kluczem interfejsu API. Dodajsecrets.propertiesdo swojego.gitignorepliku (lub wyklucz go z systemu kontroli wersji), aby nie dodawać klucza interfejsu API do kontroli wersji.MAPS_API_KEY=YOUR_API_KEY
-
Utwórz plik
local.defaults.propertiesw katalogu najwyższego poziomu, w tym samym folderze co pliksecrets.properties, a następnie dodaj ten kod.MAPS_API_KEY=DEFAULT_API_KEY
Ten plik ma na celu zapewnienie lokalizacji kopii zapasowej klucza interfejsu API jeśli plik
secrets.propertiesnie zostanie znaleziony, aby kompilacje się nie powiodły. Może się tak zdarzyć, jeśli sklonujesz aplikację z systemu kontroli wersji , który pomijasecrets.propertiesi nie utworzysz jeszcze lokalnie plikusecrets.properties, aby podać klucz interfejsu API. -
W pliku
AndroidManifest.xmlprzejdź docom.google.android.geo.API_KEYi zaktualizuj atrybutandroid:valuew ten sposób:<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />Uwaga:
com.google.android.geo.API_KEYto zalecana nazwa metadanych klucza interfejsu API. Klucz o tej nazwie może służyć do uwierzytelniania w wielu interfejsach API opartych na Mapach Google na platformie Android, w tym w pakiecie Maps SDK na Androida. Aby zachować zgodność wsteczną, interfejs API obsługuje też nazwęcom.google.android.maps.v2.API_KEY. Ta starsza nazwa umożliwia uwierzytelnianie tylko w interfejsie Android Maps API w wersji 2. Aplikacja może określić tylko jedną z nazw metadanych klucza interfejsu API. Jeśli zostaną określone obie, interfejs API zgłosi wyjątek. -
W Android Studio otwórz plik
build.gradle.ktslubbuild.gradlena poziomie modułu i edytuj właściwośćsecrets. Jeśli właściwośćsecretsnie istnieje, dodaj ją.Edytuj właściwości wtyczki, aby ustawić
propertiesFileNamena"secrets.properties", ustawdefaultPropertiesFileNamena"local.defaults.properties", i inne właściwości.Kotlin
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the root directory (the same folder as the root local.properties file). // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
Groovy
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the root directory (the same folder as the root local.properties file). // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
Co dalej?
- Zapoznaj się ze stroną projektu wtyczki Gradle obiektów tajnych dla Androida na GitHubie.
- Pełny przykład użycia wtyczki znajdziesz w artykule Konfigurowanie projektu w Android Studio.