コンテンツにスキップ

02. EAS Buildでテスター配布用ビルドを作る

これまで開発に使ってきた「Expo Go」は開発者自身の端末で動かすには便利ですが、第三者のテスターに「Expo Goを入れて開発サーバーに繋いで」と頼むのはハードルが高すぎます。

テスターに配るためには、通常のアプリと同じように単体で動作するスタンドアロンバイナリ(Androidなら .apk、iOSなら .ipa)を作成する必要があります。

Expoが提供する強力なクラウドビルドサービス 「EAS Build(Expo Application Services)」 を使えば、手元のMacやPCの性能に関わらず、ワンコマンドでクラウド上で配布用アプリをビルドできます。

この記事では、eas.json の設定から、Android APKの作成、iOS Ad Hocビルドと端末登録(UDID)、そしてビルドトラブルの解決策までを詳しく解説します。


  1. EAS Buildの仕組みと従来のネイティブビルドとの違い
  2. eas.jsonの作成と「preview」プロファイルの詳細設定
  3. Android向け配布ビルド(APK)の設定と生成
  4. iOS向け内部配布ビルド(Ad Hoc)とUDID登録の完全手順
  5. EAS Buildの実行とリアルタイム進捗監視
  6. ビルドが失敗した時のログ解析とトラブルシューティング
  7. まとめと次のステップ

1. EAS Buildの仕組みと従来のネイティブビルドとの違い

Section titled “1. EAS Buildの仕組みと従来のネイティブビルドとの違い”

従来、React Nativeのアプリをビルドするには、ローカルマシンに重厚な Xcode や Android Studio をインストールし、複雑な証明書やプロビジョニングファイルを手作業で設定する必要がありました。ディスク容量も数十GBを圧迫し、ビルドマシンが悲鳴を上げることもしばしばです。

EAS Buildを使うと、以下のような劇的なメリットがあります。

  • クラウドでの自動コンパイル: ローカルマシンのCPUやメモリを一切消費せず、Expoの高速なクラウドサーバー上でビルドが走ります。
  • 証明書・署名の自動管理: 初心者が最も挫折しやすいキーストア(Android)や証明書・プロファイル(iOS)の生成・管理をEASが完全自動で代行してくれます。
  • OSの制約を超えたビルド: Windows PCを使っていても、クラウド上でiOSビルドを作成することが可能です(※Apple Developerアカウントが必要)。

2. eas.jsonの作成と「preview」プロファイルの詳細設定

Section titled “2. eas.jsonの作成と「preview」プロファイルの詳細設定”

プロジェクトルートに EAS のビルド設定ファイルである eas.json を初期化します。

ターミナルで以下のコマンドを実行します。

Terminal window
# EAS CLIが未インストールの場合はインストール
npm install -g eas-cli
# Expoアカウントでログイン
eas login
# EASプロジェクトの設定を初期化
eas build:configure

初期化されると、ルートディレクトリに eas.json が生成されます。このファイルを開き、テスター配布用の preview プロファイルを確認・編集します。

{
"cli": {
"version": ">= 12.0.0"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal",
"android": {
"buildType": "apk"
},
"ios": {
"simulator": false
}
},
"production": {
"android": {
"buildType": "app-bundle"
}
}
},
"submit": {
"production": {}
}
}

3. Android向け配布ビルド(APK)の設定と生成

Section titled “3. Android向け配布ビルド(APK)の設定と生成”

Androidテスターへの配布は最も簡単です。特別な端末登録なしに、生成されたAPKファイルをそのままインストールできるためです。

以下のコマンドを実行して、Android用のプレビュービルドを開始します。

Terminal window
eas build --platform android --profile preview

実行すると、EASがプロジェクトコードをクラウドへアップロードし、ビルドキューに入ります。ターミナルに表示されるダッシュボードURL(https://expo.dev/accounts/.../builds/...)をブラウザで開くと、リアルタイムでビルドログを確認できます。


4. iOS向け内部配布ビルド(Ad Hoc)とUDID登録の完全手順

Section titled “4. iOS向け内部配布ビルド(Ad Hoc)とUDID登録の完全手順”

iOS端末にApp Storeを経由せずに直接アプリをインストールする場合、Appleのセキュリティ仕様により、「インストールする端末の固有識別子(UDID)」をApple Developerアカウントに事前登録する必要があります。これを Ad Hoc配布 と呼びます。

EAS CLIには、この面倒な作業を対話形式で自動化してくれる機能が備わっています。

手順1:テスターのiPhoneを登録するURLを発行

Section titled “手順1:テスターのiPhoneを登録するURLを発行”
Terminal window
eas device:create

ターミナルに登録用のURLとQRコードが表示されます。これをテスターのiPhoneのカメラで読み取ってもらうと、Appleの構成プロファイルがインストールされ、EASに端末のUDIDが自動登録されます。

手順2:iOSプレビュービルドを実行

Section titled “手順2:iOSプレビュービルドを実行”
Terminal window
eas build --platform ios --profile preview

EASは登録されたすべてのUDIDを含めた Ad Hoc プロビジョニングプロファイルを自動生成し、署名してビルドを完了させます。


5. EAS Buildの実行とリアルタイム進捗監視

Section titled “5. EAS Buildの実行とリアルタイム進捗監視”

ビルドには通常10分〜15分程度かかります。

ターミナル上には進行状況が表示され、完了すると成果物のダウンロードリンクが発行されます。

✔ Build successful!
Android app: https://expo.dev/artifacts/eas/abcdef.../build.apk
iOS app: https://expo.dev/artifacts/eas/uvwxyz.../build.ipa

この生成された .apk ファイル(または .ipa ファイル)を手元にダウンロードするか、URLを保持しておきます。


6. ビルドが失敗した時のログ解析とトラブルシューティング

Section titled “6. ビルドが失敗した時のログ解析とトラブルシューティング”

もしビルドが途中で失敗(Failed)した場合も、慌てる必要はありません。EASのWebダッシュボードで赤文字のエラーログを確認し、AIエージェントに貼り付けます。

代表的なエラー主な原因解決策
Package name is not validapp.jsonpackagebundleIdentifier が不正英数字とピリオドのみ(例: com.yourname.habitflow)で正しく設定する。
Missing credentialsApple Developerアカウント等の認証期限切れeas credentials を実行して認証情報を再同期する。
Out of memory / 依存関係の衝突プラグインやネイティブライブラリの非互換npx expo-doctor をローカルで実行し、推奨バージョンに合わせる。

クラウド上でテスター実機にそのままインストールできるアプリバイナリを生成できました。

次の記事では、このビルドファイルをFirebaseコンソール(Firebase App Distribution)へアップロードし、テスターへの自動配信体制を構築する「03. Firebase App Distributionにアプリをアップロードする」に進みましょう。