🏦

【Flutter】Androidでの環境変数の設定

に公開

はじめに

Flutterアプリ開発において、APIキーなどの機密情報を安全に管理することについてよく悩むと思います。
この記事では、GitHub Actionsのsecretsを使用して環境変数を設定する方法を紹介します。

この記事はGoogle Maps for Flutter の公式ドキュメントを参考にしています。

目次

  1. 環境変数の設定手順
  2. GitHub Actionsでの設定
  3. トラブルシューティング

環境変数の設定手順

1. プロパティファイルの作成

local.defaults.properties

Androidディレクトリにlocal.defaults.propertiesを作成します。このファイルはデフォルト値として使用されます。

MAPS_API_KEY=*******

secrets.properties

次に、secrets.propertiesを作成します。このファイルはGitHub Actionsで使用される重要なファイルです。

MAPS_API_KEY=(Github Actionsのsecretsに配置したAPI_KEY)

⚠️ 重要: secrets.properties.gitignoreに追加することを忘れないでください。

2. AndroidManifest.xmlの設定

AndroidManifest.xmlapplicationタグ内に以下の設定を追加します:

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="${MAPS_API_KEY}"/>

3. Gradleの設定

ルートのbuild.gradle

Androidのルートディレクトリにあるbuild.gradleを以下のように更新します:

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1"
    }
}

appのbuild.gradle

android/app/build.gradleに以下の設定を追加します:

plugins {
    id "com.google.android.libraries.mapsplatform.secrets-gradle-plugin"
}

secrets {
    propertiesFileName = "secrets.properties"
    defaultPropertiesFileName = "local.defaults.properties"
}

GitHub Actionsでの設定

GitHub Actionsでビルドを実行する際は、以下のようにsecrets.propertiesを作成します:

- name: Create secrets.properties
  run: |
    cd apps/mobile/android
    echo "MAPS_API_KEY=${{ secrets.MAPS_API_KEY }}" >> secrets.properties

トラブルシューティング

よくある問題と解決方法

  1. APIキーが正しく読み込まれない場合

    • secrets.propertiesのパスが正しいことを確認
    • Gradleの設定が正しいことを確認
    • ビルドをクリーンして再実行
  2. GitHub Actionsでの問題

    • secretsが正しく設定されているか確認
    • ワークフローファイルのパスが正しいか確認

注意点

  • local.propertiesを使用すると、GitHub Actions上で文字列が「***」として読み込まれる場合があり、自分はここで結構ハマりました。
  • secrets.propertiesを使用することをお勧めします。
  • 機密情報は必ずGitHubのsecretsに保存し、直接コードに記述しないでください。

まとめ

この記事では、Flutterアプリでの環境変数の設定方法を紹介しました。
GitHub Actionsのsecretsを使用することで、安全にAPIキーを管理することができます。
設定が完了したら、アプリをビルドしてGoogleMapが正しく表示されることを確認してください。

GitHubで編集を提案

Discussion