はじめに
現在、React Native (Expo) を使ってパーソナルAIエージェントアプリを開発しています。
開発が進み、社内検証やベータテストのためにTestFlight(App Store Connect)へアプリをアップロードしようとした際、いくつかの配信パターンがあることを知りました。
Expoが提供する EAS Build を使えばコマンド一発でクラウドビルドから配信まで完結して便利なのですが、無料枠(Freeプラン)だと月のビルド回数や並列処理に上限があり、頻繁にデバッグビルドを回しているとあっという間に枠を使い切ってしまいます。
この記事では、無料枠の枯渇対策も含めて、「React NativeアプリをTestFlightに反映するまでの3つのパターン」 を備忘録としてまとめます。
対象読者
- React Native (Expo) アプリをTestFlightで配信したい方
- EAS Buildの無料枠(上限)に引っかかって困っている方
- ローカル(Xcode)でのビルドとアップロード手順を知りたい方
パターン1:EAS Buildを使ったクラウドビルド&自動アップロード
まずは、Expoの恩恵を最大限に受けられるパターンです。
証明書の管理などもEAS側で良しなにやってくれるため、Macを持っていなくても(Windowsからでも)iOSビルドが可能です。
1. クラウドでビルドを実行する
eas.json の設定に基づき、用途に合わせて以下のコマンドを実行します。
キャッシュが原因の謎エラーを防ぐため、念のため --clear-cache をつけておくのがおすすめです。
【開発用(Dev)プロファイルでのビルド】
npx eas build --profile development --platform ios --clear-cache
【本番用(Prod / TestFlight)プロファイルでのビルド】
npx eas build --profile production --platform ios --clear-cache
2. TestFlightへ送信(Submit)する
ビルドが完了し、.ipa ファイルが生成されたら、以下のコマンドでApp Store Connectへ自動アップロードします。
npx eas submit --profile production --platform ios
※インタラクティブなプロンプトに従って、アップロードしたいビルドIDを選択するだけで完了します。
- メリット: コマンドだけで完結する。証明書管理が楽。Windows環境でも可能。
- デメリット: Freeプランだと順番待ちが発生しやすく、月のビルド回数に上限がある。
パターン2:ローカル(Xcode)を使ったビルド&アップロード
EASの無料枠を使い切ってしまった場合や、手元のMacのスペックが高くてクラウドより早くビルドが終わる場合は、こちらの「ローカルビルド」を採用します。
1. iOSプロジェクトの生成とクリーンアップ
ExpoのManaged Workflowで開発している場合、まずはネイティブの ios ディレクトリを生成(または初期化)します。
npx expo prebuild --platform ios --clean
※ --clean をつけることで、既存の ios フォルダを破棄して真っ更な状態から再生成してくれます。
※ 不要なキャッシュや依存関係のズレをリセットできるため、リリース前には必ず実行しています。
2. Xcodeを開く
生成された .xcworkspace を以下のコマンドで開きます。
xed ios
3. Xcode上でArchiveとDistributionを実行
ここからはXcodeのGUI操作になります。
- Xcodeの画面上部(デバイス選択メニュー)で、シミュレータではなく 「Any iOS Device (arm64)」 を選択します
- 上部メニューの [Product] > [Archive] をクリックしてビルドを開始します
- Archiveが完了すると「Organizer」ウィンドウが立ち上がります
- 右側の [Distribute App] ボタンをクリックし、[App Store Connect] を選択して画面の指示に従いアップロード(Upload)します
- メリット: 完全無料。回数無制限。Macのスペック次第ではEASより速い
- デメリット: Mac環境が必須。Xcodeの操作や証明書(Provisioning Profile等)の手動管理が必要になる場合がある
パターン3:Transporterを使ったアップロード(おまけ)
すでに .ipa ファイルが手元にある場合(EASからipaだけダウンロードした場合や、過去のビルドファイルを再アップロードしたい場合)、Apple公式アプリの Transporter を使ってアップロードできます。
- MacのApp Storeから「Transporter」アプリをインストールします
- アプリを起動し、Apple IDでログインします
- ドラッグ&ドロップで
.ipaファイルをTransporterに放り込みます - 「デリバリ」 ボタンを押すだけで、App Store Connectへ安全にアップロードされます
ターミナルコマンド(eas submit や xcrun altool)に抵抗がある方や、ネットワークエラー等でCLIからのアップロードが途中でコケてしまった時の代替手段として便利です。
おわりに
Expoの EAS Build は便利ですが、検証段階などで「無料枠の壁」や「謎のビルドエラー」にぶつかります。
そんな時、「いざとなれば prebuild してXcodeから直接Archiveできる」 という選択肢を持っておくことで、開発を止めずに検証やリリースを進めることができます。



