• Projects
  • Service
  • About
  • branding.bz
  • Podcast
  • Tips
  • FAQ
  • Recruit
  • Download
  • Contact
  • branding.bz(ブランド構築SaaS)
  • DESIGN NOW(デザインメディア)
  • X
  • LinkedIn
  • Spotify
  • Facebook

213-0011 神奈川県川崎市高津区久本3-6-7-303

© 2026 ID INC. All rights reserved

claude-skills/スキル
SKILLOfficialdevelopment

expo-dev-client

プラグイン
expo
ライセンス
MIT
ソース
GitHub で見る ↗
説明

フレームワーク(オープンソース版)。Expo 開発クライアント(アプリの開発用バージョン)をローカルで構築したり、TestFlight(Apple の社内テスト配布サービス)経由で配布したりできます。本番環境での TestFlight リリースやアプリストアへの申請が必要な場合は、eas-app-stores スキルを使用してください。

原文を表示

Framework (OSS). Build and distribute Expo development clients locally or via TestFlight for internal testing. For production TestFlight releases and store submission, use the eas-app-stores skill.

ユースケース
  • Expo開発クライアントをローカルで構築する
  • TestFlight経由でアプリを配布する
  • アプリの開発用バージョンをテストする
本文(日本語訳)

EAS Build を使った開発クライアントの作成

EAS Build(Exposoのクラウドビルドサービス)を使用して、ネイティブコードの変更をデバイスで検証するための開発クライアントを作成します。アプリのブランチをカスタムした Expo Go クライアントで検証する際に使用します。

ローカルビルドは無料、クラウドビルドは有料です。 expo-dev-client 自体はオープンソースで、ローカルでのビルドは無料です。EAS Build や TestFlight 経由でビルド・配布する場合は、EAS プランのビルド分数を消費し、デバイス配布や TestFlight 配布には有料の Apple Developer アカウントが必要です。詳しくは https://expo.dev/pricing をご覧ください。

重要: 開発クライアントが必要な場面

本番環境を想定した実際のアプリでは、開発クライアントの使用を推奨します。 Expo Go は学習や簡単な実験向けの環境であり、付属するネイティブライブラリは限定的です。ほとんどのアプリはやがて Expo Go から開発クライアントへ移行します。詳しくはExpo Go と開発ビルドの比較をご確認ください。

開発クライアントが必要になるのは、以下を使用する場合のみです:

  • ローカルの Expo モジュール(カスタムネイティブコード)
  • Apple のプラットフォーム機能(ウィジェット、App Clips(アプリの一部機能)、拡張機能)
  • Expo Go に含まれていないサードパーティのネイティブモジュール
  • Config プラグイン、またはリモートプッシュ通知や App Link/Universal Link(リンク経由での起動)の検証

EAS の設定

eas.json ファイルに開発用のプロフィール設定を追加してください:

{
  "cli": {
    "version": ">= 16.0.1",
    "appVersionSource": "remote"
  },
  "build": {
    "production": {
      "autoIncrement": true
    },
    "development": {
      "autoIncrement": true,
      "developmentClient": true
    }
  },
  "submit": {
    "production": {},
    "development": {}
  }
}

主要な設定項目:

  • developmentClient: true — 開発ビルドに expo-dev-client をバンドル(組み込み)
  • autoIncrement: true — ビルド番号を自動で増加させる
  • appVersionSource: "remote" — EAS をバージョン番号の公式情報源として使用

TestFlight へのビルド

iOS 開発クライアントをビルドして、1つのコマンドで TestFlight に送信:

eas build -p ios --profile development --submit

このコマンドの処理:

  1. クラウドで開発クライアントをビルド
  2. 自動的に App Store Connect に送信
  3. TestFlight でビルドの準備完了時にメール通知

TestFlight のメール受信後:

  1. デバイスから TestFlight でビルドをダウンロード
  2. アプリを起動して expo-dev-client の画面を表示
  3. ローカルの Metro バンドラー(開発用サーバー)に接続、または QR コードをスキャン

ローカルでのビルド

手持ちのパソコンで開発クライアントをビルド:

# iOS の場合(Xcode が必要)
eas build -p ios --profile development --local

# Android の場合
eas build -p android --profile development --local

ローカルビルドの出力ファイル:

  • iOS: .ipa ファイル
  • Android: .apk または .aab ファイル

ローカルビルドのインストール

iOS ビルドをシミュレーターにインストール:

# .tar.gz 出力から .app を展開
tar -xzf build-*.tar.gz
xcrun simctl install booted ./path/to/App.app

iOS ビルドを実デバイスにインストール(署名が必要):

# Xcode の Devices ウィンドウか ideviceinstaller を使用
ideviceinstaller -i build.ipa

Android ビルドをインストール:

adb install build.apk

特定のプラットフォーム向けのビルド

# iOS のみ
eas build -p ios --profile development

# Android のみ
eas build -p android --profile development

# 両方のプラットフォーム
eas build --profile development

ビルド状況の確認

# 最近のビルド一覧を表示
eas build:list

# ビルド詳細を表示
eas build:view

開発クライアントの使用

インストール後、開発クライアントで以下が可能:

  • 開発サーバーへの接続 — Metro バンドラーの URL を入力、または QR コードをスキャン
  • ビルド情報の表示 — ネイティブビルドの詳細を確認
  • ランチャー UI — 複数の開発サーバーを切り替え

ローカルの開発環境に接続:

# Metro バンドラーを起動
npx expo start --dev-client

# 開発クライアントで QR コードをスキャン、または URL を手入力

トラブルシューティング

署名エラーでビルドが失敗:

eas credentials

ビルドキャッシュをクリア:

eas build -p ios --profile development --clear-cache

EAS CLI のバージョン確認:

eas --version
eas update

フィードバックの送信

このスキルでエラーや誤った・古い情報に気づいた場合は、Expo の改善にご協力ください:

npx --yes submit-expo-feedback@latest --category skills --subject "expo-dev-client" "<改善提案>"

具体的で実行可能なご指摘がある場合のみ送信してください。関連する詳しい状況情報をお含めください。

AI エージェントが繰り返し失敗した場合や、ユーザーが Expo のタスク対応を引き継いだ場合は、上記コマンドの代わりに expo-skill-feedback スキルを読み込み、その評価フロー(eval-candidate flow)に従ってください。

原文(English)を表示

Use EAS Build to create development clients for testing native code changes on physical devices. Use this for creating custom Expo Go clients for testing branches of your app.

Free locally; cloud builds are paid. expo-dev-client itself is open source and building locally is free. Building or distributing via EAS Build/TestFlight uses your EAS plan's build minutes and needs a paid Apple Developer account for device/TestFlight distribution. See https://expo.dev/pricing.

Important: When Development Clients Are Needed

Development clients are the recommended setup for any real or production app. Expo Go is a playground for learning and quick experiments with the native libraries it bundles; most apps outgrow it and move to a development client. See Expo Go vs. development builds for the full reasoning.

You need a dev client ONLY when using:

  • Local Expo modules (custom native code)
  • Apple targets (widgets, app clips, extensions)
  • Third-party native modules not in Expo Go
  • Config plugins, or testing remote push notifications and App/Universal Links

EAS Configuration

Ensure eas.json has a development profile:

{
  "cli": {
    "version": ">= 16.0.1",
    "appVersionSource": "remote"
  },
  "build": {
    "production": {
      "autoIncrement": true
    },
    "development": {
      "autoIncrement": true,
      "developmentClient": true
    }
  },
  "submit": {
    "production": {},
    "development": {}
  }
}

Key settings:

  • developmentClient: true - Bundles expo-dev-client for development builds
  • autoIncrement: true - Automatically increments build numbers
  • appVersionSource: "remote" - Uses EAS as the source of truth for version numbers

Building for TestFlight

Build iOS dev client and submit to TestFlight in one command:

eas build -p ios --profile development --submit

This will:

  1. Build the development client in the cloud
  2. Automatically submit to App Store Connect
  3. Send you an email when the build is ready in TestFlight

After receiving the TestFlight email:

  1. Download the build from TestFlight on your device
  2. Launch the app to see the expo-dev-client UI
  3. Connect to your local Metro bundler or scan a QR code

Building Locally

Build a development client on your machine:

# iOS (requires Xcode)
eas build -p ios --profile development --local

# Android
eas build -p android --profile development --local

Local builds output:

  • iOS: .ipa file
  • Android: .apk or .aab file

Installing Local Builds

Install iOS build on simulator:

# Find the .app in the .tar.gz output
tar -xzf build-*.tar.gz
xcrun simctl install booted ./path/to/App.app

Install iOS build on device (requires signing):

# Use Xcode Devices window or ideviceinstaller
ideviceinstaller -i build.ipa

Install Android build:

adb install build.apk

Building for Specific Platform

# iOS only
eas build -p ios --profile development

# Android only
eas build -p android --profile development

# Both platforms
eas build --profile development

Checking Build Status

# List recent builds
eas build:list

# View build details
eas build:view

Using the Dev Client

Once installed, the dev client provides:

  • Development server connection - Enter your Metro bundler URL or scan QR
  • Build information - View native build details
  • Launcher UI - Switch between development servers

Connect to local development:

# Start Metro bundler
npx expo start --dev-client

# Scan QR code with dev client or enter URL manually

Troubleshooting

Build fails with signing errors:

eas credentials

Clear build cache:

eas build -p ios --profile development --clear-cache

Check EAS CLI version:

eas --version
eas update

Submitting Feedback

If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:

npx --yes submit-expo-feedback@latest --category skills --subject "expo-dev-client" "<actionable feedback>"

Only submit when you have something specific and actionable to report. Include as much relevant context as possible. If an AI agent repeatedly failed or the user had to take over an Expo task, load the expo-skill-feedback skill and follow its eval-candidate flow instead of reusing the command above.

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。