対象読者
- React Nativeでモバイルアプリ開発を行っているエンジニア
- iOS/Androidのビルド・署名環境の構築に苦労した経験のある開発者
- チームでのリリースエンジニアリングを仕組み化したい開発リーダー
前提環境
筆者の検証環境は以下の通りです。
- macOS Tahoe 26.3.1(a)
- Node.js 25.9.0
- Expo 55.0.14
- React Native 0.83.4
- React 19.2.0
- TypeScript 5.9.2
- EAS CLI 18.6.0
- Apple Developer ProgramおよびGoogle Play Consoleのアカウント
リリースエンジニアリングの壁
本連載ではここまで、画面を組み立て、ネイティブ機能を呼び出し、権限を扱い、Expo Routerでナビゲーションを組み、Webにも対応させる、といったアプリの「中身」を作る方法を扱ってきました。ここまで来れば、手元の端末でアプリを動かすところまでは辿り着けます。
しかし、モバイルアプリ開発の本当の山場は、そこから先の「ユーザーに届ける」工程です。iOSの証明書、Androidのキーストア、ビルドサーバーの用意、CI/CDの整備。個人開発でも業務開発でも、等しく立ちはだかる壁です。筆者も過去に何度もこの壁にぶつかり、苦労してきました。
iOS/Androidアプリをユーザーに届けるために必要な工程を整理すると、おおまかに「署名用のクレデンシャルを揃える」「ネイティブアプリをビルドする」「ストアに提出する」「配信する」の4つに分かれます(図1)。
この工程の一つ一つが、なかなかに面倒です。特に筆者が過去に苦労してきたことを挙げると、次のようなポイントです。
- iOSの署名体系が複雑:Distribution Certificate、App ID、Provisioning Profile、Push Notificationのキーなど、登場人物が多く、Apple Developer Programのダッシュボードを行き来して設定する必要がある
- Androidのキーストア管理が属人化しやすい:一度紛失するとアプリの更新ができなくなるキーストアファイルを、チームでどう安全に共有・保管するかが悩ましい
- ビルドマシンの用意が必要:iOSアプリをビルドするにはmacOSマシンが要る。CI/CDサービスを使うにしてもXcodeのバージョン管理やキャッシュ戦略で消耗しがち
- CI/CD設定の学習コストが高い:上記を全部ひっくるめて自動化しようとすると、GitHub Actionsなり各種CIなりの設定ファイルを書き、秘密情報の取り扱いを考え……と、アプリ本体の開発と関係ないところに時間を持っていかれる
こうした面倒事を、OSS側から大きく軽減してくれてきたのがFastlaneの存在です。筆者もかつてはFastlaneのmatchで証明書をチーム共有し、gymとpilotでビルドからTestFlightまでを自動化する……という構成でしのいでいました。ただしFastlaneはRuby製ツールであり、JavaScript/TypeScriptでアプリを書くReact Nativeエンジニアにとっては、Rubyランタイムの管理とFastlaneの設定記法の習得という、本業以外の学習コストを別途支払うことになりがちです。
本連載のEAS編のテーマを一言で表すなら「面倒なことはクラウドに任せる」です。リリースエンジニアリングは価値のある仕事ではありますが、多くのアプリ開発者にとって、自分で抱え込まずに済むならそうしたい領域でもあります。Expoチームが提供するEAS(Expo Application Services)は、まさにこの領域をクラウドに引き取るために作られたサービス群です。
EASという解決策
そこで登場するのがEAS(Expo Application Services)です。本節では、まずEAS全体の見取り図を示し、本連載で扱う4サービスの役割と、料金体系の勘所を押さえます。
Expo Application Servicesの全体像
EAS(Expo Application Services)は、Expoチームが提供するクラウドサービス群です。アプリ開発のライフサイクル――ビルド、署名、ストア提出、アップデート配信、CI/CD――をまるごとクラウドに引き取ってくれます(図2)。
現時点でEASは次の5つのサービスで構成されています。
- EAS Build:iOS/Androidネイティブアプリのクラウドビルドと署名
-
EAS Submit:ビルド成果物(
.ipa/.aab)のストア自動提出 - EAS Update:ストア審査を経ずにJSバンドルを差し替えるOTAアップデート配信
- EAS Workflows:上記3つを束ねるCI/CDパイプライン
- EAS Hosting:WebアプリやExpo RouterのServer Componentsのホスティング
このうちEAS HostingはExpoのWebターゲットをホストするサービスで、本連載のモバイル文脈とは少し離れます。ただしExpo Router の Server Componentsと組み合わせることで、モバイルアプリ側からサーバーサイドのReactコンポーネントを呼び出す構成も取れる、興味深い領域です。本連載では扱いませんが、存在だけ覚えておいてください。
料金体系の概要
EASは有料サービスですが、無料プラン(Free)も用意されており、個人の学習・趣味開発なら無料プランだけでも十分に体験できます。
無料プランの主な制限は、月あたりのビルド本数がiOS/Android各15本までに制限されることと、ビルドキューの優先度が下がることくらいで、機能面の制約はほとんどありません。チーム開発や頻繁なリリースを行う場合は、優先度の高いビルドキューを使える Starter プラン(月額19ドル~)や、さらに並行ビルド枠を拡張したProductionプラン(月額199ドル~)への加入を検討することになります。最新の料金体系はexpo.dev/pricingで確認できます。
本連載のハンズオンはすべて無料プランの範囲で完結するので、クレジットカード情報の登録なしで読み進められます。
