【React Native × EAS Build】3日間のビルド地獄
ここ3日間、Google Play Console への修正したアプリを再アップロードしようとして eas build を何度も繰り返していました。
結果的には 「eas prebuild を実行してから eas.json を以下のように設定」 することでビルドが通るようになりました。
"production": {
"autoIncrement": true,
"developmentClient": false,
"android": {
"buildType": "app-bundle"
}
}結果的にたったこれだけの修正だったのですが、ここに至るまでに何度も試行錯誤を繰り返しかなーり大変な思いをしました。
なぜつまずいたのか?
最大の原因は、ビルド構成(flavor や buildType)への理解不足でした。React Native(特に Expo + EAS Build 環境)でアプリをリリースする際、以下のような概念を正しく理解しておく必要があります。
buildType: apk or app-bundle の選択
developmentClient: 開発ビルドと本番ビルドの違い
flavor: dev や prod などのビルドバリアント(今回は未使用でしたが、今後は使うこともあるかも)
eas prebuild の役割(android/ ディレクトリを生成・更新)
これらの基礎があやふやだったことで、何度も「gradlew がない」「プロジェクト構造がおかしい」といったエラーに悩まされる羽目に…。
今回得た教訓
eas prebuild を挟むことでネイティブプロジェクトが正しく生成される
eas.json の記述は、ビルドの流れを左右する最重要ファイル
ビルド環境(flavorやvariant)の理解なしに本番リリースは危険
これからやるべきこと
Androidの flavor や build.gradle の仕組みをしっかり勉強する
iOSビルドにも備えて、profile や証明書まわりの理解も深める
eas build のキャッシュやデバッグ手法も記録しておく
同じように「ビルドで詰んだ…」という方の参考になれば幸いです。
React Native × EAS Build に触れてからまだ期間は短いですが、着実にレベルアップしていきたいです。