API キーをバージョン管理システムにチェックインしないことが強く推奨されます。代わりに、プロジェクトのルート ディレクトリにある(ただしバージョン管理からは除外される)ローカルの secrets.properties ファイルに保存し、API キーの読み取りには Android 用 Secrets Gradle プラグインを使用します。
Android 用 Secrets Gradle プラグインは、バージョン管理システムにチェックインされていないプロパティ ファイルから、API キーなどのシークレットを読み取ります。プラグインは、これらのプロパティを、Gradle で生成された BuildConfig クラスと Android マニフェスト ファイルの変数として公開します。
Android 用 Secrets Gradle プラグインを使用して API キーにアクセスする詳細な例については、Android Studio プロジェクトを設定するをご覧ください。
インストールと使用
Android 用 Secrets Gradle プラグインを Google マップ プロジェクトにインストールする手順は以下のとおりです。
-
Android Studio で最上位レベルの
build.gradle.ktsファイルかbuild.gradleファイルを開き、buildscriptの配下にあるdependencies要素に次のコードを追加します。Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
Groovy
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
- モジュール レベルの
build.gradle.ktsファイルかbuild.gradleファイルを開き、次のコードをplugins要素に追加します。Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
Groovy
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- モジュール レベルの
build.gradle.ktsファイルかbuild.gradleファイルで、targetSdkとcompileSdkを 34 に設定します。 - ファイルを保存して、プロジェクトを Gradle と同期します。
-
最上位レベルのディレクトリで
secrets.propertiesファイルを開き、次のコードを追加します。YOUR_API_KEYは実際の API キーに置き換えてください。secrets.propertiesはバージョン管理システムにチェックインされないため、このファイルにキーを保存します。MAPS_API_KEY=YOUR_API_KEY
- ファイルを保存します。
-
最上位レベルのディレクトリ(
secrets.propertiesファイルと同じフォルダ)にlocal.defaults.propertiesファイルを作成し、次のコードを追加します。MAPS_API_KEY=DEFAULT_API_KEY
このファイルの目的は、
secrets.propertiesファイルがない場合に API キーのバックアップ場所を提供し、ビルドが失敗しないようにすることです。この状況は、secrets.propertiesを省略したバージョン管理システムからアプリのクローンを作成し、API キーを提供するためにsecrets.propertiesファイルをまだローカルに作成していない場合に発生する可能性があります。 - ファイルを保存します。
-
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}" />
注:
com.google.android.geo.API_KEYは、API キーとして推奨されるメタデータ名です。この名前のキーは、Android プラットフォームで Google マップベースの複数の API(Maps SDK for Android など)の認証に使用できます。下位互換性を確保するため、API ではcom.google.android.maps.v2.API_KEYという名前もサポートされています。この従来の名前は、Android Maps API v2 の認証にのみ使用できます。アプリでは、API キーのメタデータ名を 1 つのみ指定できます。両方を指定すると、API から例外がスローされます。 -
Android Studio でモジュール レベルの
build.gradle.ktsファイルかbuild.gradleファイルを開き、secretsプロパティを編集します。secretsプロパティがない場合は追加します。プラグインのプロパティを編集して
propertiesFileNameをsecrets.propertiesに、defaultPropertiesFileNameをlocal.defaults.propertiesに設定し、他のプロパティも設定します。Kotlin
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the 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" // 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.*" }
Groovy
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the same folder as the 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" // 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.*" }
次のステップ
- GitHub で Android 用 Secrets Gradle プラグインのプロジェクト ページを表示します。
- プラグインの詳細な使用例については、Android Studio プロジェクトをセットアップするをご覧ください。