SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ExpoとEASで始める快適モバイルアプリ開発

クラウドビルドの実践――EAS BuildとDevelopment Buildを活用した開発フロー

ExpoとEASで始める快適モバイルアプリ開発 第10回

Development Buildとeas build:dev

 ここまではAndroidを例にビルドを進めてきました。次はiOS向けにdevelopment プロファイルを使い、日常の開発で活躍するDevelopment Buildを試していきます。

Development Buildとは

 Development Buildとは、Expo Goアプリの代わりに使う、プロジェクト専用のカスタム開発クライアントです。

 通常のExpo Goは汎用アプリなのでサードパーティのネイティブモジュールを含まず、カスタムネイティブコードを使うプロジェクトでは動作しません。Development BuildはdevelopmentClient: true付きの developmentプロファイルでビルドした専用クライアントで、プロジェクト固有のネイティブコードを含みつつ、MetroとのホットリロードやExpo DevToolsとの接続が可能です。

Development Buildを作成する

 Development Buildを作るには、まずexpo-dev-clientパッケージをプロジェクトに追加します(リスト10)。

[リスト10]expo-dev-clientのインストール
npx expo install expo-dev-client

 expo-dev-clientはDevelopment Buildに必要なランタイムを提供するパッケージです。インストール後はeas build:devコマンドでビルドから起動までを一括で行えます(リスト11)。

[リスト11]Development Buildの作成と起動(初回)
eas build:dev --platform ios

 初回実行時は「fingerprintに一致するビルドが見つからないため新規ビルドが必要。シミュレータ向けにdevelopment-simulatorプロファイルをeas.jsonへ自動追加してよいか?」という確認が表示されます。Yesと答えるとeas.jsonにプロファイルが追加され、シミュレータ向けのDevelopment Buildがクラウドで生成されます。ビルド完了後はシミュレータの選択画面が表示され、選択するとアプリが自動インストール・起動されます。

 expo startで開発サーバを立ち上げると、シミュレータ上のアプリからMetroへ自動接続され、おなじみのホットリロード開発が始まります。

 ここでeas build:devの真価が現れます。Development Buildには「手元のソースコードとビルドが一致しているか」という管理上の課題があります。ネイティブ依存(パッケージやプラグイン)を変更した後に古いDevelopment Buildに新しいJSを読み込んでも、期待通りに動きません。eas build:devはこの判断を自動化します。2回目以降の実行では、現在のfingerprintと一致するビルドをクラウドから探し、見つかればキャッシュされたビルドをそのまま起動します(リスト12)。

[リスト12]Development Buildの起動(2回目以降・fingerprint一致時)
eas build:dev --platform ios

 一致するビルドが見つかった場合、新規ビルドを待たずにシミュレータへのインストールと起動が完了します(図6)。

図6:eas build:devの実行結果。fingerprintを確認して一致するビルドが見つかった様子
図6:eas build:devの実行結果。fingerprintを確認して一致するビルドが見つかった様子

fingerprintとは

 fingerprintとは、プロジェクトのネイティブ依存(package.jsonのネイティブパッケージ、app.jsonのプラグイン設定、android/ios/ディレクトリの内容など)をまとめてハッシュ化した値です。fingerprintが変わっていなければ「ネイティブコードは変わっていない=既存のDevelopment Buildで動く」と判断できます。逆にfingerprintが変わっていれば「新しいビルドが必要」というサインです。

 eas build:devはこの判定を自動で行うため、「ネイティブを触ったかどうか」を開発者が意識しなくてもよくなります。fingerprintの仕組みはEAS Updateで「OTAアップデートで配信できるか、フルビルドが必要か」を判断する際にも中心的な役割を担いますが、それは第12回で詳しく扱います。

次のページ
eas envによる環境変数管理

この記事は参考になりましたか?

ExpoとEASで始める快適モバイルアプリ開発連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 中川 幸哉(ナカガワ ユキヤ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/24652 2026/06/29 09:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング