Google zdecydowanie zaleca, aby nie umieszczać klucza interfejsu API w systemie kontroli wersji. Zamiast tego należy go przechowywać w lokalnym pliku secrets.properties, który znajduje się w katalogu głównym projektu, ale jest wykluczony z kontroli wersji. Następnie należy użyć wtyczki Gradle obiektów tajnych dla Androida, aby odczytać klucz interfejsu API.
Wtyczka Gradle obiektów tajnych na Androida odczytuje obiekty tajne, w tym klucz interfejsu API, z pliku właściwości, który nie jest sprawdzany w systemie kontroli wersji. 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 do uzyskiwania 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 na Androida i zapisać klucz interfejsu API:
-
W Android Studio otwórz plik
build.gradlenajwyższego poziomu i dodaj ten kod do elementudependenciesw sekcjibuildscript.Zakręcony
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") } }
-
Otwórz plik
build.gradlena poziomie aplikacji i dodaj ten kod do elementuplugins.Zakręcony
plugins { id 'com.android.application' // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.android.application") // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- Jeśli używasz Androida Studio, zsynchronizuj projekt z Gradle.
-
Otwórz plik
local.propertiesw katalogu na poziomie projektu, a następnie dodaj ten kod: ZastąpYOUR_API_KEYswoim kluczem interfejsu API.MAPS_API_KEY=YOUR_API_KEY
-
W pliku
AndroidManifest.xmlotwórzcom.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. Ze względu na 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ą nazwę metadanych klucza interfejsu API. Jeśli określono oba te parametry, interfejs API zgłosi wyjątek.
Co dalej?
- Wyświetl stronę projektu Wtyczka Gradle obiektów tajnych na Androida w GitHubie.
- Pełny przykład użycia wtyczki znajdziesz w artykule Konfigurowanie projektu Android Studio.