mcpField
E
eas-app-stores

eas-app-stores

github.com/expoクラウド・DevOps3.5k23.8k 回インストール今日更新
リポジトリ

eas-app-stores について

eas-app-stores は、EAS を使った iOS・Android アプリのビルドとリリースを案内する Expo のスキルです。Expo/React Native アプリと既存のネイティブアプリを対象に、ストア申請やテスト、リリース状況の確認方法を説明します。

主な機能

  1. 01EAS のビルドとストア申請ガイド
  2. 02Expo/React Native のリリース手順
  3. 03ネイティブ iOS の設定とアーカイブ確認
  4. 04TestFlight とストア申請のリファレンス
  5. 05自動リリースワークフローの案内
  6. 06バージョンとビルド状況の確認

活用シーン

  1. 01iOS・Android のストア用ビルドの準備
  2. 02iOS ビルドの TestFlight への申請
  3. 03EAS を使ったネイティブ Swift アプリのリリース
  4. 04ビルドと申請の進行状況の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/expo/skills --skill eas-app-stores

インストール後、Claude Code で/eas-app-storesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
references/
app-store-metadata.md
ios-app-store.md
native-ios.md
play-store.md
testflight.md
workflows.md

詳細

App Store へのデプロイ

EAS サービス — 費用が発生します。 クラウドビルドでは EAS プランのリソースを使用し、EAS サービスには無料枠と有料プランの利用上限があります。Apple Developer と Google Play のメンバーシップは別途必要です。ご利用予定のサービスについては、https://expo.dev/pricing をご確認ください。

このスキルでは、Expo やその他の React Native プロジェクト、および既存のネイティブアプリを対象に、EAS を使って iOS アプリと Android アプリをビルドし、リリースする方法を説明します。EAS は配信サービスです。ネイティブアプリでは、実行時に Expo や React Native を追加せずに利用できます。現在のネイティブアプリ設定ガイドでは、iOS の SwiftUI/UIKit を扱っています。

プロジェクトの種類を選ぶ

  • React Native のランタイムがない SwiftUI/UIKit アプリ: ビルド設定を変更する前に、references/native-ios.md をお読みください。Xcode プロジェクトと Swift コードを、アプリの信頼できる情報源として維持してください。以下の Expo/React Native のクイックスタートと開発クライアントの例は、この種類には適用されません。
  • React Native のランタイムがないネイティブ Android アプリ: 既存のネイティブビルド設定を維持してください。提出については references/play-store.md をご覧ください。Swift/iOS の設定手順は適用されません。ネイティブ Android 専用の設定ガイドは、まだ用意されていません。
  • Expo/React Native アプリ: 以下のクイックスタートを使い、その後、該当するストアのリファレンスをご覧ください。
  • 既存のネイティブアプリに React Native の画面を追加する場合: その統合には expo-brownfield を使用し、配信についてはここに戻ってください。

ネイティブ iOS の初期設定時、バージョン、バンドル ID、アイコンの変更後、またはアップロードが却下された原因を調べる際には、references/native-ios.md のアーカイブとアイコンのチェックを行ってください。通常のリリースでは、EAS のビルド/提出フローと、references/testflight.md の処理状況および公開状況の確認手順に従ってください。EAS ビルドの成功や提出のキューへの追加だけでは、Apple による承認、テスターのアクセス、App Store でのリリースは保証されません。

リファレンス

必要に応じて、以下のリソースを参照してください。

  • ./references/workflows.md -- ストアリリースの自動化と PR プレビューのための CI/CD ワークフロー
  • ./references/testflight.md -- ベータテスト用の iOS ビルドを TestFlight に提出する方法
  • ./references/app-store-metadata.md -- App Store のメタデータと ASO 最適化の管理
  • ./references/play-store.md -- Android ビルドを Google Play Store に提出する方法
  • ./references/ios-app-store.md -- iOS App Store の提出と審査プロセス
  • ./references/native-ios.md -- Expo ランタイムを使わない、ネイティブの Swift/SwiftUI/UIKit の設定、バージョン管理、アーカイブ検証

Expo / React Native クイックスタート

EAS CLI をインストールする
npm install -g eas-cli
eas login
EAS を初期化する
npx eas-cli@latest init

eas init は EAS プロジェクトをリンクまたは作成します。eas build:configure を実行して eas.json にビルドプロファイルを作成してください。リリース設定がすでにある場合は、既存のプロジェクト ID とストア ID を維持してください。

ビルドコマンド

本番ビルド
# iOS App Store build
npx eas-cli@latest build -p ios --profile production

# Android Play Store build
npx eas-cli@latest build -p android --profile production

# Both platforms
npx eas-cli@latest build --profile production
ストアに提出する
# iOS: Build and submit to App Store Connect
npx eas-cli@latest build -p ios --profile production --auto-submit

# Android: Build and submit to Play Store
npx eas-cli@latest build -p android --profile production --auto-submit

# Expo / React Native shortcut for iOS TestFlight
npx testflight

Web と API ルートのホスティング

Expo のウェブサイトや Expo Router の API ルートを EAS Hosting にデプロイする方法(npx expo export -p web の後に eas deploy を実行)は、eas-hosting スキルで扱います。このスキルでは、ネイティブアプリのストアリリースに焦点を当てています。

EAS の設定

Expo / React Native プロジェクトの例です(ネイティブの Swift プロファイルについては references/native-ios.md をご覧ください)。

{
  "cli": {
    "version": ">= 16.0.1",
    "appVersionSource": "remote"
  },
  "build": {
    "production": {
      "autoIncrement": true,
      "ios": {
        "resourceClass": "m-medium"
      }
    },
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    }
  },
  "submit": {
    "production": {
      "ios": {
        "appleId": "[email protected]",
        "ascAppId": "1234567890"
      },
      "android": {
        "serviceAccountKeyPath": "./google-service-account.json",
        "track": "internal"
      }
    }
  }
}

プラットフォーム別ガイド

iOS
  • ネイティブの Swift アプリでは、references/native-ios.md の明示的なビルド/提出フローを使用してください
  • Expo / React Native アプリでは、npx testflight を使って TestFlight の手続きを簡単に行えます
  • eas credentials を使って Apple の認証情報を設定してください
  • 認証情報の設定については ./references/testflight.md をご覧ください
  • App Store への提出については ./references/ios-app-store.md をご覧ください
Android
  • Google Play Console のサービスアカウントを設定してください
  • トラックを設定してください:内部 → クローズド → オープン → 本番
  • 詳細な設定については ./references/play-store.md をご覧ください

リリースの自動化

EAS Workflows は、CI/CD のビルド → 提出 → 更新のパイプラインを自動化します。ストアリリースの例については、./references/workflows.md を参照してください。ワークフロー YAML を作成または検証するには、eas-workflows スキルを使用してください。最新のワークフロースキーマを参照して動作します。

バージョン管理

appVersionSource: "remote" を使用すると、EAS がバージョン番号を自動的に管理します。

# Check current versions
eas build:version:get

# Manually set version
eas build:version:set -p ios

バージョン設定コマンドでは、値の入力を求められます。ネイティブ iOS のバージョン管理を設定または変更するときや、ビルド番号の重複を調査するときは、アーカイブ内の CFBundleVersion を確認してください。リモートのカウンターだけでは、Xcode がその値を使用したことの証明にはなりません。

モニタリング

# List recent builds
eas build:list

# Check build status
eas build:view BUILD_ID

# Inspect submissions (verified with EAS CLI 23.2.0)
eas submit:list -p ios --json
eas submit:view SUBMISSION_ID --json

コマンドが見つからない場合、その原因を判断する前に CLI のバージョンを確認してください。これらの提出コマンドは 23.2.0 では利用できますが、テスト済みの 18.6.0 のインストール環境では利用できません。バージョンを固定した npx [email protected] の呼び出しを使えば、グローバルインストールを変更せずに実行できます。Apple の最新のステータスと再試行に関するガイダンスは、references/testflight.md を参照してください。JSON の結果に根本的な失敗の詳細が含まれていない場合は、返されたログ URL を確認してください。正確なビルド ID/バージョンと、リリースの進捗で確認できた最も先の状態を報告してください。

フィードバックの送信

このスキルに関して、エラーや誤解を招く情報、古くなった情報に気づいた場合は、Expo が改善できるよう報告してください。

npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-app-stores" "<actionable feedback>"

具体的で実行可能な報告内容がある場合にのみ送信してください。関連する背景情報をできるだけ多く含めてください。 エージェントが Expo のタスクを繰り返し失敗する場合や、ユーザーが介入する必要がある場合は、タスク、期待される結果、問題の内容を簡潔に報告し、--category evals と、関連する Expo パッケージまたはコマンドを --subject に指定してください。

コメント