【flutter_dotenv】Gitで管理したくないsecret keyなどの扱い方を分かりやすく解説してみたよ

Dart

概要

どうも、@daiki1003です!

flutter_dotenvのインストール方法

flutter_dotenv | Flutter package
Easily configure any flutter application with global variables using a `.env` file.

こちらのパッケージをインストールします。

パッケージのインストール方法に関しては、

【超簡単!】Flutterのパッケージのインストール方法を説明するよ!
概要 Flutter(Dart)で画像のクリッピングするコードが書けますか? Flutter(Dart)でhttp通信するコードが書けますか? 大丈夫、書けなくて良いんです。 Flutterでは、色んな人が使いそ...

こちらのブログを見ていただければと思います!

flutter_dotenvの使い方

.envファイルの作成

ルートフォルダに.envと言うファイルを作成します。

SAMPLE_KEY="sample_key"

pubspec.yamlに.envのassetsを追加

flutter:
  assets:
    - .env

(必要であれば).envをgit管理下から除外

Gitで管理したくないシークレットキーなどを管理する目的ですので
.gitignoreに追加します。

// .gitignore
.env*

main.dartで.envファイルの読み込み

// main.dart

import 'package:flutter_dotenv/flutter_dotenv.dart' as dotenv;

Future main async {
  ...

  await dotenv.load();

  ...

  runApp(MyApp());
}

secret keyなどの利用

// somewhere.dart
print(env['SAMPLE_KEY']); // sample_key

ちょっと応用編

他の変数を参照する

変数を定義する際に、他の変数を参照することもできます。

// .env
HOGE="hoge"
FUGA="fuga"
HOGE_FUGA=$HOGE$FUGA
// somewhere.dart
print(env['HOGE_FUGA']); // hogefuga

$をそのまま表示したい

''(シングルクオート)を使うことでエスケープが可能です。

// .env
ESCAPED_DOLLAR='$1000'
// somewhere.dart
print(env['ESCAPED_DOLLAR']); // $1000

その他Q&A

実行中に.envの変更を反映するには?

ホットリスタートで可能です。

.envにコメントを付けたい

.env内でのコメントは#を先頭に置くことで可能です。

# This is comment line.
SAMPLE_KEY="sample_key"

.envファイルを見やすくする方法はないの?

VSCodeを使ってる方は、こちらの拡張が良いかなと思います。

ENV - Visual Studio Marketplace
Extension for Visual Studio Code - Adds formatting and syntax highlighting support for env files (.env) to Visual Studio Code

flutter analyzeで怒られる

flutter analyze をした際や、GitHub Actionsを利用している方は

  assets:
    - .env

で、怒られて失敗してしまうと思います。
これに関しては、こちらのGitHub Issueを参考に

analyzer:
  errors:
    unrecognized_error_code: ignore
    asset_does_not_exist: ignore

とすることで解決しました!

CodemagicなどのCI/CD系ツールのビルドが通らない

それに関しては、こちらにブログを書きましたので見ていただければと思います!

【Codemagic】Git管理下にない環境変数を設定する方法
つい最近、 flutter_dotenvを使って、Gitで管理したくないファイルを追加しました。 すると、Codemagicでのビルドがこける様になりました。 エラーの内容見てみると Error detec...
誰かのお役に立てば。

Twitterフォローお願いします

「次回以降も記事を読んでみたい!」
「この辺分からなかったから質問したい!」

そんな時は、是非Twitter (@daiki1003)Instagram (@ashdik_flutter)のフォローお願いします♪

Twitterコミュニティ参加お願いします

Twitterコミュニティ「Flutter lovers」を開設しました!
参加お待ちしております😁

☕️ Buy me a coffee

また、記事がとても役に立ったと思う人は
コーヒーを奢っていただけると非常に嬉しいです!

コメント

タイトルとURLをコピーしました