📑
【Flutter】Codemagicで「.envが無い!」と怒られる
これはなに
flutter_dotenv
を用いて.env
で環境変数を管理し、.gitignore
に入れておいたところ、Codemagicのビルド時に以下のようなエラーが出ました。そりゃそうだ。
Error detected in pubspec.yaml:
No file or variants found for asset: .env.
Codemagic上でビルド前に.env
ファイルを用意してエラーを解決する方法を書きます。
こちらの公式の説明に沿っていきます。
'You will first have to base64 encode it.'
まず、ファイルをbase64でエンコードします。.env
ファイルはプロジェクトのルートにあるので、以下のコマンドを打ってエンコードした値をクリップボードにコピーします。その他のファイル・階層については適宜読み替えてください。
base64 .env | pbcopy
'Then encrypt the received string.'
前のステップで受け取った値をCodemagic上でencryptします。まずApp Srttingsの右のバーから""を選択します。
エンコードした値をペーストして、encryptしてもらい、クリップボードにコピーします。
'Save the encrypted string to an environment variable.'
上で受け取った値を適当な環境変数に渡します。今回はENV
という名前で設定しました。同じくApp SettingsのEnvironment variablesの項目で環境変数名とその値をそれぞれ入力します。間違いがないことを確認し、Secureを押してAddしてください。
Addし終わった後
'Finally, base64 decode it during build time in your scripts section.'
ビルド前に、.env
を作成するスクリプトを書きます。
App Settingsのビルドフローの中のTestとBuildの間の+をタップして、
出てきたスクリプト記入欄の下の方の”Pre-build script”に以下のコマンドを記入します。
echo $ENV | base64 --decode> $FCI_BUILD_DIR/.env
上のバーにあるSave Changesボタンを押して完了です!ビルドして確かめてみてください!
Discussion