🏭

初めてのExpo本番ビルド(Android向け)

に公開

概要

ReactNativeとExpoを使ってアプリ開発をしています。
この記事では、アプリの公開に向けてまずは手元で本番ビルドを試してみたので、その備忘録を書いています。

ちなみに、開発ビルドとプレビュービルドはすでに完了済みです。また、今回は Android 向けのビルドを行います。

事前準備

まずはビルド前の準備。

Expo doctor

Expo doctor というパッケージを利用して、問題になりそうな項目がないか診断してもらいます。

npx expo-doctor

15件の診断項目のうち、12件がパス。3件の問題があると言われました。どうやらパッケージの更新で解消しそうです。

パッケージ更新

パッケージの更新を行います。

npx expo install --check

5個のパッケージが更新されました。いづれもマイナーかパッチバージョンの更新。

アーキテクチャ警告は無視

再度 expo-doctor を実行すると、問題が1件に減りました。
アイコン系のライブラリに関して、 Use libraries that are actively maintained and support the New Architecture. という警告が出ていました。

Claude によると本番ビルドには影響ないとのことなので、いったん無視して進めます。

TypeScript の型チェック

型チェックを行います。

npx tsc --noEmit

特に問題は無し。良かった。

以上で事前準備は終了です。

本番ビルド

さて、本番ビルドの実行をします。

Expo ログイン

ローカルのターミナルで、 Expoの認証状態を作ります。

npx eas login

ビルドコマンド

本番ビルドを実行!

npx eas build --platform android --profile production

11分後にビルドが完了。なんと1発で成功しました!よかった~

追記

本番ビルドの結果を実機で試したかったのですが、うまくいかなかった。プレビュービルドと違い、Expoo からインストールしてもアプリが開かない。

どうやらこれは aab というファイル形式になっているため。これは PlayStore 向けのビルドです。
プレビュービルドまでは(というか eas.json で distribution: internal 指定したものは)、 apk というファイル形式になっており、Android 端末で問題なく開けました。

というわけで、eas.json に以下のような設定を追加。

    "pre-production": {
      "android": {
        "buildType": "apk"
      }
    },

対応するビルドコマンドは以下のとおりです。

npx eas build --platform android --profile pre-production

Discussion