リモート会話は接続できたのに、Xcodeのコマンドや作業ディレクトリだけが失敗する。
最短の判定は、SSHまたは認証済みDev TunnelでVS Code Remote Agent SessionsをリモートMacへ接続し、同じアカウントからXcodeツールチェーンを確認することです。プレビュー期間中は、隔離したノードで試し、接続成功をSimulator、署名、公開、本番CIの合格とみなさないでください。
このページが必要な人
Windows、Linux、モバイル端末からApple向けの開発作業を管理したい開発者向けです。
AgentをXcodeのビルドやテストへ接続したいAIエンジニア、共有Macの権限と資格情報を管理するDevOps・開発基盤チームにも適しています。
注意: 2026年9月13日時点で、Agents windowとRemote Agent Sessionsはプレビュー扱いです。接続方式や権限画面が変わる可能性があるため、導入日ごとに公式のRemote Agent Sessions説明を再確認してください。
01 まず分けるべき4つの合格条件
「接続できた」という表示だけでは、開発ノードとして使えるか判断できません。次の状態を分けて記録します。
- 接続状態:Agents windowが対象ホストを認識し、セッションを開始できる。
- 作業状態:指定したリポジトリとディレクトリを読み書きできる。
- ツール状態:Agentが使うシェルからGit、Node.js、Swift、Xcodeコマンドを実行できる。
- 業務状態:ビルド、テスト、署名、公開など、目的の処理が完了する。
Remote Agent Sessionsの公式説明では、リモートホストが起動し、ネットワークから到達できることが前提です。したがって、セッション開始後にMacをスリープさせる構成や、接続経路が頻繁に変わる試験ノードは、最初から別の判定にしてください。
最低条件は、専用または分離されたアカウント、読み書き可能なリポジトリ、問題発生時に破棄できる試験環境です。共有Macでこの3つを用意できない場合は、本番接続を止めます。
02 VS Code Remote Agent SessionsをリモートMacへ接続する方式
SSHとDev Tunnelは、単純な優劣ではなく、入口、認証、運用責任が異なります。
| 判定項目 | SSH | 認証済みDev Tunnel |
|---|---|---|
| 入口 | MacのRemote LoginとSSH経路 | Dev Tunnelの接続経路 |
| 認証 | OSアカウント、鍵、既存のSSH管理 | VS Codeアカウントなどの認証 |
| 運用対象 | ポート、鍵、ファイアウォール、ログ | トンネル状態、アカウント、認証範囲 |
| 向いている構成 | 既存のサーバー運用へ組み込みたい場合 | 直接の受信経路を設けにくい場合 |
| 停止条件 | 鍵管理や到達制御を監査できない場合 | 匿名アクセス、認証主体を追跡できない場合 |
SSHを使う場合は、Macの「リモートログイン」を有効にし、対象ユーザーを限定します。AppleのRemote Login公式手順に従って設定し、まず通常のSSH接続を確認してからAgents windowへ進みます。Remote SSHの公式設定資料も、クライアント側の接続条件を確認する資料として使えます。
Dev Tunnelを選ぶ場合も、アカウント認証を必須にします。匿名で到達できるトンネルは、Agentの自動操作と組み合わせる構成として認めません。Dev Tunnelの公式資料で、認証、トンネルの開始状態、クライアント側の入口を確認してください。
第一段階:Agents windowで観察する項目
次の順で、画面上の表示とMac側のログを記録します。
- [ ] 対象ホスト名が想定した名前になっている
- [ ] 接続方式がSSHまたは認証済みDev Tunnelになっている
- [ ] リモートディレクトリが
<WORKSPACE_DIR>になっている - [ ] セッション開始後、Agent Hostが起動している
- [ ] 切断時刻と、再接続を試した時刻が残っている
ここで「接続済み」になっても、別ユーザーのホームディレクトリや別のリポジトリを開いているなら失格です。ホスト名、ユーザー名、リポジトリ名は実値を記録しても、記事や共有ログでは<HOST>、<USER>、<REPOSITORY>のような表記に置き換えます。
まだ試験用のMacがない場合は、CALMVPSの日本向けMac利用プランのような短期レンタル環境を分離ノードとして使い、接続、権限、復旧を本番環境とは別に確認できます。実際の作業量と停止条件を記録してから、継続利用の判断へ進んでください。
03 Agent Hostからコマンド実行までを閉じる
Remote Agent Sessionsでは、接続後にリモート側でCLIが動き、Agentがその環境を使って作業します。ここで重要なのは、ローカルのターミナルではなく、Agentが実際に受け取るユーザー、作業ディレクトリ、Shell環境です。
まず、読み取りだけの確認から始めます。
whoami
pwd
printf '%s\n' "$SHELL"
git rev-parse --show-toplevel
次に、制御された変更を1つだけ行います。たとえば<WORKSPACE_DIR>/tmp/agent-check.txtを作成し、内容を確認してから削除します。その後、依存関係の検査と最小テストを実行します。
git status --short
xcode-select -p
xcodebuild -version
<MINIMAL_TEST_COMMAND>
ローカルターミナルでは成功するのにAgentだけ失敗する場合、次の順で調べます。
- ログインShellと非対話Shellで環境変数が異なる。
PATHにHomebrewやXcode関連の実行ファイルが含まれない。- Agentの作業ディレクトリに書き込み権限がない。
- コマンド実行やファイル変更が承認待ちになっている。
- Agentが想定外のOSアカウントで動いている。
承認を無条件で許可する設定は、遠隔の入口と重なると影響範囲が広がります。Agentの承認モデルを読み、読み取り、ファイル変更、外部コマンドの扱いを分けてください。
04 Xcodeの確認は4段階に分ける
Xcodeがインストールされているだけでは、Agentから開発作業が完了するとは限りません。AppleのXcodeコマンドラインツールリファレンスに沿って、同じアカウントからツールを確認します。
1. 開発者ディレクトリ
xcode-select -pでアクティブな開発者ディレクトリを確認します。Command Line Toolsだけを指している場合、対象プロジェクトが要求するXcode環境と一致しないことがあります。
2. コマンド実行
xcodebuild -versionと、対象の<PROJECT>または<WORKSPACE>に対する情報取得を試します。ここで失敗するなら、Agentのプロンプトやモデルではなく、まずXcode選択、ライセンス、SDK、権限を調べます。
3. 非グラフィカルなビルド・テスト
署名を必要としない最小ターゲットでビルドやテストを実行します。ビルド設定はプロジェクトごとに異なるため、AppleのBuild Settingsリファレンスと実際の.xcconfig、Schemeを照合します。
4. Simulator、署名、公開
Simulatorが起動すること、コード署名が通ること、公開処理が完了することは、それぞれ別の合格条件です。特に署名証明書、プロビジョニングプロファイル、配布用トークンをAgentへ常時渡す設計は避けます。
公式資料がRemote Agent Sessionsの一般接続を説明していても、Xcode、Simulator、コード署名、無人公開までを一括保証しているわけではありません。ここは実際のMac上のプロジェクトで、目的ごとに受け入れ試験を実施します。
05 共有ノードでは権限を先に狭める
個人用の試験Macと、複数人が使うMacでは分離方法が異なります。
個人用ノードでは、専用のOSアカウントと専用リポジトリを用意し、試験後にアカウントや作業ディレクトリを破棄できるようにします。共有ノードでは、ユーザーごとのホームディレクトリ、Git worktree、SSH鍵、環境変数を分離します。
次の情報は、Agentの標準作業領域へ置かないでください。
- 署名証明書と秘密鍵
- App Store Connectなどの公開用トークン
- 本番環境のAPIキー
- 他ユーザーのSSH秘密鍵
- 無期限で利用できる管理者資格情報
自動承認を有効にする場合は、対象コマンド、対象ディレクトリ、解除条件を記録します。Agentのセキュリティガイドが示すリスクも確認し、権限を追加するたびに変更記録を残してください。
06 再起動と切断を本番前の停止条件にする
長期オンラインの開発ノードとして使うなら、正常接続より異常時の復旧を確認します。少なくとも次の試験を隔離環境で行います。
- クライアントだけを切断する。
- Macへのネットワーク経路を一時的に遮断する。
- Dev Tunnelを停止する、またはSSH接続を閉じる。
- Macを再起動する。
- Macの起動後にRemote LoginまたはDev Tunnelを確認する。
- Agents windowから新しいセッションを開く。
<WORKSPACE_DIR>、Git状態、Agent Host、最小コマンドを再確認する。
再接続できても、作業ディレクトリが変わったり、ログインShellの環境変数が欠落したりする場合があります。復旧結果は「自動復帰」「手動操作で復帰」「復帰不可」の3つに分け、所要時間を実測値として記録してください。公開資料にない復旧性能を一般化してはいけません。
現時点の判定は次の3段階で十分です。
- 試走継続:接続、作業ディレクトリ、最小コマンドが安定し、資格情報を分離できる。
- 利用制限:コード変更や非署名ビルドだけ許可し、Simulatorや公開処理は別系統にする。
- 本番延期:再起動後の復旧、認証、承認、ログ記録のどれかを確認できない。
実機をまだ用意できない場合は、CALMVPSの料金と利用条件を確認し、短い期間のリモートMacで試験ノードを分離する方法があります。接続地域や利用期間は、実際の開発作業と復旧試験の記録を見てから決めてください。
07 よくある確認事項
VS Code Remote Agent SessionsでmacOSホストへ接続できますか?
接続できます。2026年9月13日時点では、Agents windowからSSH、認証済みのDev Tunnel、ブラウザー経由でリモートAgentセッションを管理できます。ただし、Macが起動中でネットワークから到達できることが前提です。接続成功だけでXcodeや署名環境まで検証済みとは判断しないでください。
リモートAgentのセッションからxcodebuildを実行できますか?
Agentが利用するアカウントのシェルからxcodebuildを呼び出せる構成なら、コードの読み取り、変更、ビルド確認を試せます。まずxcode-select、xcodebuild -version、対象プロジェクトの最小ビルドを同じアカウントで確認してください。Simulator、署名、公開処理は別の受け入れ試験が必要です。
SSHとDev TunnelはリモートMac接続でどう選びますか?
管理するネットワーク入口と認証方式で選びます。SSHはRemote Login、鍵やユーザー管理、既存のSSH運用に組み込みやすい一方、到達経路の設計が必要です。Dev Tunnelは専用の入口を作りやすいですが、アカウント認証を必須にし、匿名アクセスは採用しないでください。
リモートMacを再起動した後、Agentセッションはどうなりますか?
再起動すると、既存セッションをそのまま維持できるとは限りません。Macの起動、ネットワーク、Remote LoginまたはDev Tunnel、対象ディレクトリ、Agent Hostの再起動を順に確認し、Agents windowから新しいセッションを開けるかを検証します。自動復旧を本番条件にする前に、実機で停止と復帰を記録してください。
共有MacでAgentを動かすとき、リポジトリと認証情報をどう分離しますか?
開発者または業務単位でOSアカウント、作業ディレクトリ、Git worktree、環境変数を分けます。署名証明書、配布用トークン、SSH秘密鍵をAgentの常用領域へ置かず、承認設定も自動許可にしないでください。変更内容、停止条件、資格情報の無効化手順を監査可能な記録として残します。
WindowsやLinuxの手元端末だけで続ける構成は、macOS専用のXcodeツールチェーンを実行できず、別のMacへの手動転送、接続経路の維持、署名資格情報の管理が増えます。ローカルMacの購入も安定しますが、試験期間だけ必要なノードを常時保有し、故障対応や保管コストまで負担することになります。
接続・Xcodeコマンド・再起動復旧を分離して確認できるなら、CALMVPSのリモートMacを短期間の試験ノードとして使い、実際のログと失敗条件から継続利用を判断するのが安全です。長期の高負荷処理や物理デバイス接続が必須なら自前設備を選び、短期のAI開発、Xcode検証、隔離環境が目的ならレンタルから始めてください。
最終更新:2026年9月13日。Agents window、Remote Agent Sessions、SSH、Dev Tunnel、Agentの承認と安全設定はVS Code公式資料、Remote LoginはApple公式資料を基に確認しています。