メインコンテンツまでスキップ

デバイスセッション

デバイスセッションは、マシンと一緒に仮想デバイスを起動する Remote Dev Environment のセッションです。Bitriseがデバイスを起動し、必要に応じてアプリのビルドをインストールして起動し、準備ができたら通知し、その画面をブラウザーにストリーミングします。マシン上のデバイスは通常のシミュレーターまたはエミュレーターで、xcrun simctl、adb、または任意のモバイルテストツールで操作できます。

特定の画面サイズとOSバージョンでCIビルドをテストする場合、セッション上でアプリをビルドして実行する場合、またはビルド、インストール、UIのタップ操作、スクリーンショットの取得までをAIコーディングエージェントに任せ、その様子をブラウザーで確認する場合に、デバイスセッションを使用します。

デバイスセッションの作成Click to copy link​

通常どおりセッションを作成し、デバイスを指定します。Stack and machine typeは省略できます。省略すると、Bitriseがプラットフォームに適した動作確認済みの組み合わせを使用します。

選択したスタックまたはテンプレートがデバイスをサポートしている場合、New session フォームにデバイスのセクションが表示されます。iOSの場合は macOS スタック、Androidの場合は Linux Android スタックです。

  1. Remote Dev Environmentsセクションで、New session をクリックします。
  2. Stack を選択します。使用できるシミュレーターまたはエミュレーターはこれによって決まります。macOS スタックでは iOS シミュレーター、Linux Android スタックでは Android エミュレーターを使用できます。
  3. Start an iOS simulator または Start an Android emulator をオンにします。
  4. 必要に応じて、Device または Device profile、iOS version または System image、ダウンロードURLとしての App to install を設定します。
  5. Create をクリックします。

templateでデバイスを宣言することもできます。その場合、そのテンプレートから作成したセッションは、個別のデバイス設定なしでデバイスを起動します。

デバイスのオプションClick to copy link​

プラットフォーム以外のオプションはすべて省略できます。

OptionApplies toDescription
PlatformBothiosは macOS スタックでシミュレーターを起動し、androidは Linux Android スタックでエミュレーターを起動します。
Device modelBoth画面プロファイルです。シミュレーターのデバイスタイプ(iPhone 16、iPad Pro 13-inch (M4)など)、またはエミュレーターのデバイスプロファイル(pixel_7、pixel_tablet、pixel_foldなど)を指定します。デフォルトは iPhone 15 または pixel_7 です。
OS versioniOS18.2 などの iOS バージョンです。デフォルトは、スタックにインストールされている最新の iOS ランタイムです。
System imageAndroidsystem-images;android-34;google_apis;x86_64 などの SDK システムイメージパッケージです。これにより Android API レベルを選択します。デフォルトは、スタックのデフォルトイメージです。
App to installBothzip 圧縮されたシミュレーター .app(iOS)または .apk(Android)のダウンロードURLです。デバイスの準備ができると、Bitriseがアプリをインストールして起動します。署名付きで有効期限のあるURLも使用でき、セッションに暗号化されて保存されます。
Emulator RAM, cores, cold bootAndroidAPIとMCPサーバーからのみ利用できます。デフォルトでは、エミュレーターのサイズはマシンに合わせて設定されます。

起動できるのは、スタックにプリインストールされているものだけです。スタックにない OS バージョン、システムイメージ、またはデバイスモデルを指定した場合、Bitriseは代わりにデフォルトを起動し、置き換えた内容をデバイスノートに記録します。デバイスノートはセッションページと bitrise-cli rde session view に表示されます。特定の OS バージョンが必要な場合は、事前にデバイスノートを確認してください。

デバイスの準備を待つClick to copy link​

セッションのステータスは、マシンが起動すると running になりますが、デバイスはバックグラウンドで起動するため、通常はさらに1~3分かかります。プラットフォームの負荷が高い場合はもっと長くかかります。セッションの詳細ページ、bitrise-cli rde session view、および API の device フィールドで、デバイスの状態を確認できます。

StateMeaningWhat 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点が追加されます。終了するとデバイスの状態が消去されるため、停止したセッションが準備完了のデバイスを報告することはありません。リストアするとデバイスが再び起動し、アプリが設定されていた場合は再インストールされます。