Google zdecydowanie zaleca, aby nie dodawać klucza interfejsu API do systemu kontroli wersji. Zamiast tego zapisz go w lokalnym pliku secrets.properties, który znajduje się w katalogu głównym projektu, ale jest wykluczony z systemu kontroli wersji, a 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. 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żytkowanie
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 }
Zakręcony
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") }
Zakręcony
plugins { id 'com.android.application' // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- Jeśli używasz Android Studio, zsynchronizuj projekt z Gradle.
-
Otwórz plik
secrets.propertiesw katalogu najwyższego poziomu i dodaj podany niżej kod. ZastąpYOUR_API_KEYkluczem interfejsu API. Dodajsecrets.propertiesdo pliku.gitignore(lub w inny sposób wyklucz go z systemu kontroli wersji), aby nie sprawdzać klucza interfejsu API w systemie kontroli wersji.MAPS_API_KEY=YOUR_API_KEY
-
Utwórz plik
local.defaults.propertiesw katalogu najwyższego poziomu, czyli w tym samym folderze, w którym znajduje się pliksecrets.properties, a następnie dodaj podany niżej kod.MAPS_API_KEY=DEFAULT_API_KEY
Ten plik służy do podania zapasowej lokalizacji klucza interfejsu API, jeśli nie uda się znaleźć pliku
secrets.properties, aby nie doszło do niepowodzenia kompilacji. Może się tak zdarzyć, jeśli sklonujesz aplikację z systemu kontroli wersji, który pomija pliksecrets.properties, i 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 Androida, 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 API Map Google dla Androida w wersji 2. Aplikacja może określić tylko jedną z nazw metadanych klucza interfejsu API. Jeśli podasz oba, 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",defaultPropertiesFileNamena"local.defaults.properties"i skonfigurować 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" }
Zakręcony
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?
- Zobacz stronę projektu Secrets Gradle Plugin for Android na GitHubie.
- Pełny przykład użycia wtyczki znajdziesz w artykule Konfigurowanie projektu w Android Studio.