🏦
【Flutter】Androidでの環境変数の設定
はじめに
Flutterアプリ開発において、APIキーなどの機密情報を安全に管理することについてよく悩むと思います。
この記事では、GitHub Actionsのsecretsを使用して環境変数を設定する方法を紹介します。
この記事はGoogle Maps for Flutter の公式ドキュメントを参考にしています。
目次
環境変数の設定手順
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.xml
のapplication
タグ内に以下の設定を追加します:
<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
トラブルシューティング
よくある問題と解決方法
-
APIキーが正しく読み込まれない場合
-
secrets.properties
のパスが正しいことを確認 - Gradleの設定が正しいことを確認
- ビルドをクリーンして再実行
-
-
GitHub Actionsでの問題
- secretsが正しく設定されているか確認
- ワークフローファイルのパスが正しいか確認
注意点
-
local.properties
を使用すると、GitHub Actions上で文字列が「***」として読み込まれる場合があり、自分はここで結構ハマりました。 -
secrets.properties
を使用することをお勧めします。 - 機密情報は必ずGitHubのsecretsに保存し、直接コードに記述しないでください。
まとめ
この記事では、Flutterアプリでの環境変数の設定方法を紹介しました。
GitHub Actionsのsecretsを使用することで、安全にAPIキーを管理することができます。
設定が完了したら、アプリをビルドしてGoogleMapが正しく表示されることを確認してください。
Discussion