expo-dev-client について
Expo の開発クライアントを構築し、実機でネイティブコードの変更をテストするためのスキルです。ローカルまたは EAS でのビルド、インストール、Metro bundler への接続を扱います。
主な機能
- 01iOS と Android の開発クライアントをビルド
- 02ローカルまたは EAS の開発ビルドを作成
- 03ビルドをデバイスやシミュレーターにインストール
- 04URL または QR コードで Metro に接続
- 05開発サーバーを切り替え
活用シーン
- 01実機でカスタム Expo モジュールをテスト
- 02Expo Go にないネイティブモジュールを確認
- 03iOS または Android の開発クライアントをビルド
- 04インストール済みクライアントを Metro に接続
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ expo/ skills --skill expo-dev-clientインストール後、Claude Code で/expo-dev-clientを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
ネイティブコードの変更を実機でテストするための開発クライアントを作成するには、EAS Build を使用します。アプリのブランチをテストするためのカスタム Expo Go クライアントを作成する場合に利用してください。
ローカルでのビルドは無料、クラウドビルドは有料です。
expo-dev-client自体はオープンソースであり、ローカルでのビルドは無料です。EAS Build/TestFlight を利用したビルドや配布には、EAS プランのビルド時間が消費されます。また、実機/TestFlight で配布するには有料の Apple Developer アカウントが必要です。https://expo.dev/pricing をご覧ください。
開発クライアントが必要な場合
実際のアプリや本番アプリには、開発クライアントを使用することをおすすめします。 Expo Go は、同梱されているネイティブライブラリを使って学習したり、手軽に試したりするための環境です。ほとんどのアプリは Expo Go では機能が足りなくなり、開発クライアントに移行します。詳しくはExpo Go と開発ビルドの比較をご覧ください。
開発クライアントが必要なのは、次を使用する場合に限られます。
- ローカル Expo モジュール(カスタムネイティブコード)
- Apple のターゲット(ウィジェット、アプリクリップ、拡張機能)
- Expo Go に含まれていないサードパーティ製ネイティブモジュール
- 設定プラグイン、またはリモートプッシュ通知や App/ユニバーサルリンクのテスト
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 開発クライアントをビルドし、TestFlight に提出するには、次のコマンドを実行します。
eas build -p ios --profile development --submit
次の処理が行われます。
- クラウドで開発クライアントをビルドします
- App Store Connect に自動的に提出します
- TestFlight でビルドの準備ができると、メールで通知します
TestFlight のメールを受信したら、次の手順を実行します。
- デバイスの TestFlight からビルドをダウンロードします
- アプリを起動して expo-dev-client の UI を表示します
- ローカルの Metro バンドラーに接続するか、QR コードをスキャンします
ローカルでのビルド
開発クライアントをマシン上でビルドします。
# iOS (requires Xcode)
eas build -p ios --profile development --local
# Android
eas build -p android --profile development --local
ローカルビルドの出力:
- iOS:
.ipaファイル - Android:
.apkまたは.aabファイル
ローカルビルドのインストール
iOS ビルドをシミュレーターにインストールします。
# Find the .app in the .tar.gz output
tar -xzf build-*.tar.gz
xcrun simctl install booted ./path/to/App.app
iOS ビルドをデバイスにインストールします(署名が必要です)。
# Use Xcode Devices window or ideviceinstaller
ideviceinstaller -i build.ipa
Android ビルドをインストールします。
adb install build.apk
特定のプラットフォーム向けのビルド
# iOS only
eas build -p ios --profile development
# Android only
eas build -p android --profile development
# Both platforms
eas build --profile development
ビルドステータスの確認
# List recent builds
eas build:list
# View build details
eas build:view
開発クライアントの使用
インストールすると、開発クライアントで次の操作ができます。
- 開発サーバーへの接続 - Metro バンドラーの URL を入力するか、QR コードをスキャンします
- ビルド情報 - ネイティブビルドの詳細を確認します
- ランチャー UI - 開発サーバーを切り替えます
ローカル開発環境に接続します。
# Start Metro bundler
npx expo start --dev-client
# Scan QR code with dev client or enter URL manually
スクリーンショットを撮ったり操作したりするために開発クライアントを自分で起動するときは、オンボーディングシート、起動時の開発メニュー、Tools ボタンをスキップしてください。SDK 58 以降では、対話型ではないシェルから起動する場合、Expo CLI がこれらを省略します。自分で開く URL では、<scheme>://?__expo_url=<encoded dev server URL>&__expo_disable_onboarding=1&__expo_disable_fab=1&__expo_disable_auto_launch=1 を使用してください。SDK 57 以前では、iOS アプリを -EXDevMenu* 起動引数で起動し、Android では <scheme>://expo-development-client/?url=<encoded dev server URL>&disableOnboarding=1&disableFab=1&disableAutoLaunch=1 を開いてください。正確なコマンドは ../expo-overview/references/launch-without-dev-menu.md をご覧ください。
トラブルシューティング
署名エラーでビルドが失敗する場合:
eas credentials
ビルドキャッシュをクリアする場合:
eas build -p ios --profile development --clear-cache
EAS CLI のバージョンを確認する場合:
eas --version
eas update
フィードバックの送信
このスキルにエラー、誤解を招く情報、または古い情報がある場合は、Expo が改善できるよう報告してください。
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-dev-client" "<actionable feedback>"
具体的で実行可能な報告内容がある場合にのみ送信してください。関連するコンテキストをできるだけ詳しく含めてください。
エージェントが Expo のタスクに繰り返し失敗する場合や、ユーザーが介入しなければならない場合は、タスクの内容、期待される結果、問題点を簡潔にまとめ、--category evals と、関連する Expo パッケージまたはコマンドを --subject に指定して報告してください。