> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# ビルドと端末検証

Expo exportの成功とrelease可能なネイティブbuildを区別します。

## インストールとセットアップ

手順の前に、[始める前に](https://supastack.dev/ja/docs/web/before-you-start.md) と [ターミナルの基本](https://supastack.dev/ja/docs/web/terminal-basics.md) をお読みください。これらの手順では、VS Code で完全な supastack モノリポジトリを開いたことが前提となっています。そのルート package.json はリポジトリのルートをマークします。 pnpm コマンドでは、ワークスペース パッケージはアプリまたは共有コード フォルダーです。この製品では、ワークスペースはチームのデータ コンテナであり、セキュリティ境界です。 corepack pnpm --filter ... コマンドがルートから実行されている間にモノリポジトリから 1 つのパッケージを選択します。同期されたモバイル フォルダーまたはデスクトップ フォルダーのみを開いた場合、そのフォルダーには Web バックエンド、Docker セットアップ、またはルート スクリプトが含まれていません。このモノリポジトリまたはアクセス可能なホスト サーバーからバックエンドを実行し、プラットフォーム フォルダー独自のスクリプトを使用します。環境変数は、ローカルの .env ファイルまたはホスティング ダッシュボードに保存される名前付き設定です。変更後に関連するアプリを再起動し、NEXT_PUBLIC_ および EXPO_PUBLIC_ 値にサーバー シークレットが含まれないようにします。

1. VS Code で apps/mobile/eas.json および apps/mobile/app.json を開いて、開発、プレビュー、運用設定を確認します。

2. corepack pnpm --filter @supastack/mobile exec expo install expo-dev-client を使用して、リポジトリ ルートからネイティブ開発クライアントを追加します。 corepack pnpm --filter @supastack/mobile typecheck を実行してから、ローカル JavaScript エクスポートのために corepack pnpm --filter @supastack/mobile build を実行します。

3. ネイティブ テストの場合は、Expo アカウントにサインインし、cd apps/mobile でターミナル フォルダーを変更し、npx eas-cli@latest build --platform android --profiledevelopment を実行します。 ios を使用して、任意のオペレーティング システムから EAS クラウド iOS ビルドをリクエストします。 iOS シミュレーターを実行するか、ローカルでコンパイルするには、Xcode を備えた Mac が必要です。予想通り: エクスポートによって JavaScript バンドルが検証され、EAS によってインストール可能なネイティブ開発アプリが生成されます。 Expo Go がネイティブ ライブラリを追加できない理由については、[Expo の開発ビルド ガイド](https://docs.expo.dev/develop/development-builds/faq/) を参照してください。

モバイル ワークスペース ビルドは、そのエクスポート スクリプトを呼び出します。これにより、構成されたターゲットのバンドルが検証されます。ストアの署名、配布構成、および物理デバイスの受け入れは、引き続き別個の作業となります。

```
corepack pnpm --filter @supastack/mobile typecheck
corepack pnpm --filter @supastack/mobile test
corepack pnpm --filter @supastack/mobile build
```


## コピーするコマンド

コメントに従って、コマンドがどのフォルダーで実行されるかを確認します。 2 つのターミナルにラベルが付いている場合は、2 つのターミナル ウィンドウを開き、2 番目のコマンドを使用している間、最初のコマンドを実行し続けます。

```
# From the monorepo root, install the native development client once:
corepack pnpm --filter @supastack/mobile exec expo install expo-dev-client
corepack pnpm --filter @supastack/mobile typecheck
corepack pnpm --filter @supastack/mobile build

# EAS needs to run where apps/mobile/eas.json is located:
cd apps/mobile
npx eas-cli@latest build --platform android --profile development
```


## 実装ワークフロー

mobileが使う共有packageを変更したら契約テストを実行します。対象端末でsafe area、キーボード、文字サイズ、reduced motionを確認してください。

ネイティブ購入は既存の RevenueCat 境界の内側に留めてください。成功したバンドルでは、検証済みのネイティブ購入統合の代わりに Stripe Checkout をモバイル インターフェイスに導入してはなりません。

iOS または Android 上で EAS 開発ビルドを使用して、構成されたサンドボックス製品に対して `react-native-purchases` を検証します。 Expo Go およびワークスペース エクスポート スクリプトはストア トランザクションを検証しません。


## 検証とトラブルシューティング

EAS ビルドで expo-dev-client が見つからないことが示されている場合は、インストール コマンドを繰り返し、apps/mobile/package.json にそれがリストされていることを確認します。 apps/mobile から EAS を実行して、eas.json を見つけます。 EAS が不足しているプロジェクトまたは署名設定を報告した場合は、Expo アカウントとプロジェクト設定を確認してください。 Expo Go とエクスポートが成功しても、StoreKit または Play Billing はテストされません。サンドボックス製品で EAS 開発ビルドを使用します。クラウド iOS ビルドは Windows または Linux 上で開始できます。ローカル iOS シミュレーター/ビルド作業のみ、Xcode を備えた Mac が必要です。

受け入れに使ったデバイス、ビルド、API 環境、ログイン方法を記録します。ディープリンク復帰、セッション復元、拒否された権限、ログアウトを検証します。エクスポート成功はストア・デバイス検証と分けて報告してください。

エクスポートが完了し、リリースが目標になったら、「アプリ ストアに送信」に従います。同梱の eas.json プロファイルと build:/submit: スクリプトによって、アプリが Google Play と App Store に送信されます。


設定を続けるには、[アプリストアへの公開](https://supastack.dev/ja/docs/mobile/publishing.md)をご覧ください。


## 次へ

[アプリストアへの公開](https://supastack.dev/ja/docs/mobile/publishing.md)
