SNCreate
Tech
Flutter
env

FlutterプロジェクトにEnviedを導入してAPI Keyを管理する!

作成日:2024年02月03日
最終更新日:2024年07月21日

ChatGPTのAPI Keyを環境変数として利用するためEnviedを導入しようとしたのですが、 公式のReadme通りにやってもbuild_runner実行時にエラーが発生しました。
その対処法が見つかったのでメモを残しておきます。

開発環境

・ OS: Windows 11
・ Flutter: v3.16.5
・ Dart: v3.2.3
・ Envied: ^0.5.3

ディレクトリ構成

最終的な構成は下記の通りです。

Terminal window
1
lib/
2
env/
3
env.dart
4
env.g.dart
5
main.dart
6
.env.dev
7
.gitignore
8
~~~ 以下略 ~~~

下準備

.gitignoreに下記を追記してenv関連を除外しておきます。

.gitignore
1
.env*
2
env/

環境ファイル(.env.devとします)に利用したい環境変数の名前と値を入力します。

1
OPENAI_API_KEY='sk-###'

lib/env/にenv.dartを作成します。コードは下記になります。

env.dart
1
import 'package:envied/envied.dart';
2
3
part 'env.g.dart';
4
5
@Envied(path: '.env.dev')
6
abstract class Env {
7
@EnviedField(varName: 'OPENAI_API_KEY', obfuscate: true)
8
static final String OPENAI_API_KEY = _Env.OPENAI_API_KEY;
9
}

注意点として、@EnviedFieldのvarNameの値と使用する環境変数名は一致させないといけないようです。

env.g.dartを生成する

筆者の場合、Flutterプロジェクトで利用するため、以下のコマンドでEnviedをインストールします。

Terminal window
1
flutter pub add envied
2
flutter pub add --dev envied_generator
3
flutter pub add --dev build_runner

次にenv.g.dartを生成するコマンドを入力します。

Terminal window
1
dart run build_runner build --delete-conflicting-outputs

すると、lib/env/にenv.g.dartというファイルが生成されます。こちらが生成されていれば導入は完了です。

lib/env/env.g.dart
1
// GENERATED CODE - DO NOT MODIFY BY HAND
2
3
part of 'env.dart';
4
5
// **************************************************************************
6
// EnviedGenerator
7
// **************************************************************************
8
9
// coverage:ignore-file
10
// ignore_for_file: type=lint
11
final class _Env {
12
static const List<int> _enviedkeyOPENAI_API_KEY = <int>[
13
3044926770,
14
1562077553,
15
844297019,
3 collapsed lines
16
1889294018,
17
1834524378,
18
~~~ 以下略 ~~~

使用例

下記のコードでコンソール上にAPI Keyの値を出力してみます。

1
import 'env/env.dart';
2
void main() {
3
print(Env.OPENAI_API_KEY); // sk-###
4
}

環境ファイルに記入した値がコンソールに出力されれば成功です。


参考リンク:

Flutter ENVied package build runner error

記事のタイトル:FlutterプロジェクトにEnviedを導入してAPI Keyを管理する!
記事の著者:D4ken
公開時間:2024年02月03日