Wtyczka Gradle obiektów tajnych

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:

  1. W Android Studio otwórz plik build.gradle najwyższego poziomu i dodaj ten kod do elementu dependencies w sekcji buildscript.

    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")
        }
    }
  2. Otwórz plik build.gradle na poziomie aplikacji i dodaj ten kod do elementu plugins.

    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")
    }
  3. Jeśli używasz Androida Studio, zsynchronizuj projekt z Gradle.
  4. Otwórz plik local.properties w katalogu na poziomie projektu, a następnie dodaj ten kod: Zastąp YOUR_API_KEY swoim kluczem interfejsu API.
    MAPS_API_KEY=YOUR_API_KEY
  5. W pliku AndroidManifest.xml otwórz com.google.android.geo.API_KEY i zaktualizuj atrybut android:value w ten sposób:
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />
        

    Uwaga: com.google.android.geo.API_KEY to 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?