🙌

【Flutter】重要キーを隠す方法

2024/02/25に公開

本記事を書いた理由

APIキー等の重要なキーを隠したかったから。

手順

①必要パッケージのインストール
②.envファイルの作成
③env.dartファイルの作成
④env.g.dartファイルの作成
⑤.gitignoreファイルの編集
⑥.envファイルの削除

①必要パッケージのインストール

以下はいつもの場所に記述する
・envied
https://pub.dev/packages/envied/install

下記二つは以下画像の箇所に記述する
・envied_generator
・build_runner

②.envファイルの作成

下記画像を参考に以下の流れでファイルやフォルダを作成する
①新規で「scripts」フォルダを作成する
②新規で「env」フォルダを作成する
③新規で「.env」ファイルを作成する
④.envファイル内に、秘匿化したいAPIキー等の情報を記載する

.env
Example_APIKEY=000000000aaaaaaaaa

③env.dartファイルの作成

libフォルダ内に「env.dart」ファイルを作成する

「obfuscate: true」の記述を行うことで、この後生成する「env.g.dart」ファイル中に記載されるキー情報が難読化される為セキュリティが向上する

env.dart
import 'package:envied/envied.dart';
part "env.g.dart";

(path: 'scripts/env/.env')
abstract class Env {

  //varNameに設定する名前は「.envファイル」内に記載している「キーの名前」を記入する
  (varName: 'Example_APIKEY', obfuscate: true)
  static String pass1 = _Env.pass1;
}

記入したては、"env.g.dart"や_Envの箇所にエラーが出ますが気にせず次のフェーズへ...

④env.g.dartファイルの作成

ターミナルで以下コードを入力 → エンターキー押下
すると、env.g.dartファイルが自動生成される

flutter pub run build_runner build --delete-conflicting-outputs

⑤.gitignoreファイルの編集

.gitignoreファイル内の48行目に以下コードを記載する

.gitignore

# 開発中のコードから秘密情報を漏らさないための処理
.env
env.g.dart

⑥.envファイルの削除

env.g.dartファイルとenv.dartファイルができあがれば、.envファイルは不要なのでセキュリティ上削除をしておく。

上記手順後に別ファイルで重要キーを使う

//「Env.pass1」のように使う
String apiKey = Env.pass1;

参考:https://www.youtube.com/watch?v=5C0MFSIH5qI&t=300s

Discussion