eas envによる環境変数管理
本番・プレビュー・開発で異なるAPIエンドポイントやAPIキーを使いたい、という場面はほぼすべてのアプリで発生します。eas envはそのための環境変数をEASクラウドで一元管理するコマンド群です。
環境変数の作成と確認
環境変数を新規作成するにはeas env:createを使います(リスト13)。
eas env:create --name API_BASE_URL --value "https://api.example.com" --environment production
--environmentにはproduction/preview/development のいずれかを指定します。ここで設定した値は、同じ環境向けのビルドやアップデート配信の際に自動で注入されます。登録済みの変数一覧はeas env:listで確認できます(リスト14)。
eas env:list --environment production
.envファイルとの同期
ローカルの.envファイルとEAS側の環境変数を双方向に同期するには、eas env:pullとeas env:pushが使えます(リスト15)。
# EAS側 → ローカルに取得 eas env:pull --environment development --path .env.local # ローカル → EAS側にアップロード eas env:push --path .env.production --environment production
eas env:pullは、チームに新しいメンバーが加わった際に「EAS上の環境変数をローカルの .envとして取得する」使い方が典型的です。.envファイルをGitに含めることなく、チーム全員が同じ環境変数を共有できます。
eas env:exec でローカル実行に環境変数を注入する
eas env:execを使うと、EAS側の環境変数を注入した状態でローカルのコマンドを実行できます(リスト16)。
eas env:exec --environment production -- npx expo start
本番環境変数でアプリの動作確認をしたい場合や、EAS側の設定でローカルのスクリプトを動かしたい場合に活用できます。
なお、eas envはビルド(EAS Build)だけでなく、OTAアップデート配信(EAS Update)でも --environmentフラグを通じて機能します。EAS Updateについては第12回で扱いますが、環境変数の設定はここで済ませておくと後の章がスムーズに進みます。
まとめ
本章では、eas buildによるクラウドビルドのハンズオンを中心に、Development Buildを活用した開発フロー(eas build:dev)と環境変数管理(eas env)まで扱いました。
eas build --platform android --profile previewのワンコマンドでAndroidのAPKがクラウドで生成され、QRコードでインストールできる体験は、ビルドマシンを用意した経験がある方ほど衝撃的に感じるはずです。クレデンシャルの自動生成(前回のeas credentials)からビルド実行までが、数コマンドで完結します。
日常の開発ではeas build:devがfingerprintによる一致判定を自動で行うため、「ネイティブを触ったか触っていないか」を意識せずにDevelopment Buildを活用できます。そしてeas envによって、本番・プレビュー・開発の環境変数をEASクラウドで一元管理し、チームで安全に共有できます。
かつて「ビルド体制を整える」ことは、中~大規模チームでないと割に合わない大仕事でした。しかし EAS の登場によって、個人開発者でも、小さなチームでも、ほんの数コマンドで本格的なリリース体制を手に入れられるようになりました。本連載ではこれを「ビルドの民主化」と呼びたいと思います。
次回(第11回)は、ビルドできた成果物をストアに届けるEAS Submitを扱います。eas.jsonの3プロファイル(development/preview/production)の使い分けもここで本格的に掘り下げ、eas build --auto-submitでビルドからストア提出までをワンコマンドで完結させます。
