デバイスセッション
デバイスセッションは、マシンと一緒に仮想デバイスを起動する Remote Dev Environment のセッションです。Bitriseがデバイスを起動し、必要に応じてアプリのビルドをインストールして起動し、準備ができたら通知し、その画面をブラウザーにストリーミングします。マシン上のデバイスは通常のシミュレーターまたはエミュレーターで、xcrun simctl、adb、また は任意のモバイルテストツールで操作できます。
特定の画面サイズとOSバージョンでCIビルドをテストする場合、セッション上でアプリをビルドして実行する場合、またはビルド、インストール、UIのタップ操作、スクリーンショットの取得までをAIコーディングエージェントに任せ、その様子をブラウザーで確認する場合に、デバイスセッションを使用します。
デバイスセッションの作成Click to copy link
通常どおりセッションを作成し、デバイスを指定します。Stack and machine typeは省略できます。省略すると、Bitriseがプラットフォームに適した動作確認済みの組み合わせを使用します。
- RDE UI
- CLI
- AI agent (MCP)
- API
選択したスタックまたはテンプレートがデバイスをサポートしている場合、New session フォームにデバイスのセクションが表示されます。iOSの場合は macOS スタック、Androidの場合は Linux Android スタックです。
- Remote Dev Environmentsセクションで、New session をクリックします。
- Stack を選択します。使用できるシミュレーターまたはエミュレーターはこれによって決まります。macOS スタックでは iOS シミュレーター、Linux Android スタックでは Android エミュレーターを使用できます。
- Start an iOS simulator または Start an Android emulator をオンにします。
- 必要に応じて、Device または Device profile、iOS version または System image、ダウンロードURLとしての App to install を設定します。
- Create をクリックします。
bitrise-cli rde session createに --device-platform ios または --device-platform android を渡します。--waitを指定すると、マシンが起動した時点ではなく、デバイスの準備ができた時点でコマンドが戻ります。
bitrise-cli rde session create ios-check --device-platform ios --wait
デバイスを選択してビルドをプリインストールするには、署名済みのURLがシェルの履歴に残らないよう、ダウンロードURLをファイルから読み込みます。
bitrise-cli rde session create android-check --device-platform android \
--device-model pixel_7 --artifact-url-stdin --wait < artifact-url.txt
最初のデバイスセッションの前に、bitrise-cli rde device-guideを読み、続いてbitrise-cli rde device-guide iosまたはandroidを読んでください。Guides for AI agentsを参照してください。
エージェントに、たとえば次のように普通の言葉で依頼します。「iPhone 16 シミュレーターでデバイスセッションを作成し、このビルドをインストールして、ログイン画面が表示されることを確認してください。」 エージェントは、device_specを指定してbitrise_devenv_createを呼び出します。
{
"name": "ios-check",
"device_spec": { "platform": "ios", "device_model": "iPhone 16" },
"artifact": { "url": "https://…/App.zip", "app_name": "My App" }
}
create session request bodyに device_spec を追加し、必要に応じて artifact も追加します。
{
"name": "android-check",
"device_spec": { "platform": "android", "device_model": "pixel_7" },
"artifact": { "url": "https://…/app.apk", "app_name": "My App" }
}
templateでデバイスを宣言することもできます。その場合、そのテンプレートから作成したセッションは、個別のデバイス設定なしでデバイスを起動します。
デバイスのオプションClick to copy link
プラットフォーム以外のオプションはすべて省略できます。
| Option | Applies to | Description |
|---|---|---|
| Platform | Both | iosは macOS スタックでシミュレーターを起動し、androidは Linux Android スタックでエミュレーターを起動します。 |
| Device model | Both | 画面プロファイルです。シミュレーターのデバイスタイプ(iPhone 16、iPad Pro 13-inch (M4)など)、またはエミュレーターのデバイスプロファイル(pixel_7、pixel_tablet、pixel_foldなど)を指定します。デフォルトは iPhone 15 または pixel_7 です。 |
| OS version | iOS | 18.2 などの iOS バージョンです。デフォルトは、スタックにインストールされている最新の iOS ラ ンタイムです。 |
| System image | Android | system-images;android-34;google_apis;x86_64 などの SDK システムイメージパッケージです。これにより Android API レベルを選択します。デフォルトは、スタックのデフォルトイメージです。 |
| App to install | Both | zip 圧縮されたシミュレーター .app(iOS)または .apk(Android)のダウンロードURLです。デバイスの準備ができると、Bitriseがアプリをインストールして起動します。署名付きで有効期限のあるURLも使用でき、セッションに暗号化されて保存されます。 |
| Emulator RAM, cores, cold boot | Android | APIとMCPサーバーからのみ利用できます。デフォルトでは、エミュレーターのサイズはマシンに合わせて設定されます。 |
起動できるのは、スタックにプリインストールされているものだけです。スタックにない OS バージョン、システムイメージ、またはデバイスモデルを指定した場合、Bitriseは代わりにデフォルトを起動し、置き換えた内容をデバイスノートに記録します。デバイスノートはセッションページと bitrise-cli rde session view に表示されます。特定の OS バージョンが必要な場合は、事前にデバイスノートを確認してください。
デバイスの準備を待つClick to copy link
セッションのステータスは、マシンが起動すると running になりますが、デバイスはバックグラウンドで起動するため、 通常はさらに1~3分かかります。プラットフォームの負荷が高い場合はもっと長くかかります。セッションの詳細ページ、bitrise-cli rde session view、および API の device フィールドで、デバイスの状態を確認できます。
| State | Meaning | What to do |
|---|---|---|
| Booting | マシンは実行中で、デバイスを起動しているところです。 | 待ちます。デバイスに対して何も実行せず、再起動や再作成もしないでください。 |
| Ready | デバイスが起動し、ストリーミングされています。 | 作業を開始します。特定の OS やモデルを指定した場合は、デバイスノートを確認してください。 |
| Failed | この起動は失敗したか、ビデオストリームのみが失敗しました。 | デバイスノートを読んでください。ストリームのみの失敗の場合、デバイスは adb や xcrun simctl で引き続き動作し、失われるのはブラウザービューだけです。それ以外の場合は、セッションを削除して新しく作成してください。 |
アプリのインストールを指定した場合は、同じ場所にインストールのステータスも表示されます。インストールに失敗してもデバイスは引き続き使用できます。アプリを自分でインストールするか、セッションをリストアして再試行してください。
ブラウザーでデバイスを確認するClick to copy link
セッションの詳細ページで、Device 行の Open device view をクリックします。ビューアーはデバイスの画面をストリーミングし、タップ、入力、スワイプ、回転、ライトとダークの外観の切り替え、スクリーンショットの取得を行えます。これは device preview linkが開くものと同じビューアーで、このセッションに接続されています。
デバイスビューには、Bitriseのログインとセッションへのアクセス権が必要です。個人のセッションの場合はその所有者、workspaceが所有するセッションの場合は workspace のメンバーであればアクセスできます。デバイスセッションへの匿名リンクはありません。Bitriseアカウントを持たない人にアプリを渡すには、代わりにプレビューリンクを発行してください。
あなたのタップとエージェントのコマンドは、同じデバイスに送られます。交代で操作してください。
デバイスを操作するClick to copy link
マシン上のすべてのものは、何もインストールしなくてもすぐに使えます。
bitrise-cli rde session execでセッション上でコマンドを実行するか、AIエージェントに MCP サーバーの execute ツールで実行させます。xcrun simctlとadbは、起動済みのデバイスを認識します。- 自動化する際は、スクリーンショットよりもアクセシビリティツリーを優先してください。iOSでは 、マシン上のストリーミングサービスが、最前面のアプリのアクセシビリティツリーを JSON として公開し、タップや入力のためのコマンドラインツールも提供します。Androidでは、入力に
adb shell、ビュー階層にuiautomator dumpを使用します。 - 独自のツールも使用できます。XCUITest、Espresso、Maestro、Appium、Detox はいずれも動作しますが、独自にデバイスを作成させるのではなく、起動済みのデバイスを UDID またはシリアルで指定してください。
- ローカルのツールを使用するには、SSHでご自身のマシンから接続します。
bitrise-cli rde session sshが SSH コマンドとパスワードを出力します。セッションのサービスポートに記載されているデバイスのポートを転送してください。両方のプラットフォームでブラウザービュー、Androidではadbを転送すると、ご自身のマシンからadb connectが動作します。 - ファイルの移動には
bitrise-cli rde session uploadとdownloadを使用します。たとえば、ビルドを持ち込んだり、スクリーンショットを取り出したりできます。
Bitriseが起動したデバイスをシャットダウン、消去、再作成しないでください。また、2台目のデバイスを起動しないでください。準備状態とブラウザービューは元のデバイスに連動しており、ツールが勝手に作成したシミュレーターは、誰にも見えないデバイス上で動くことになります。
AIエージェント向けのガイドClick to copy link
デバイスを効率的に操作するためのノウハウはツールに同梱されているため、エージェントは自力で見つけて、すぐに使い始めることができます。
- CLI:
bitrise-cli rde device-guideがメインのガイドを出力し、bitrise-cli rde device-guide iosまたはandroidがプラットフォーム固有の内容を出力します。bitrise-cli rde session createのヘルプからもこのガイドを参照できます。 - MCP サーバー: 同じガイドが
bitrise-devenv://guides/device-sessions、.../ios、.../androidリソースとして提供され、リソースを読み取らないクライアント向けにはbitrise_devenv_device_guideツールが返します。セッションツールは、デバイスを作成または操作する前にガイドを読むようエージェントに指示します。
ガイドでは、どのくらい待つか、アクセシビリティツリーの読み方と入力の送り方、インストール、起動、スクリーンショットの取得、ログの読み取りの方法、デバイスを壊す操作、起動に失敗した場合の復旧方法を説明しています。
終了、リストア、削除Click to copy link
デバイスセッションは通常の session lifecycleに従いますが、2点が追加されます。終了するとデバイスの状態が消去されるため 、停止したセッションが準備完了のデバイスを報告することはありません。リストアするとデバイスが再び起動し、アプリが設定されていた場合は再インストールされます。