Xcode SSH切断後、ビルドは止まる?2026年リモートMacガイド

Xcode SSH切断後、ビルドは止まる?2026年リモートMacガイド

判定:tmuxを使うのが適切です

SSH切断後のXcodeビルドは、接続が切れただけでは停止したとも、継続中とも判断できません。切断後も端末セッションに戻って作業を確認したい場合は、リモートMac上でtmuxを使い、再接続後にビルドの状態と結果を別々に確かめてください。tmuxはホスト再起動やプロセス終了からの自動復旧を保証しません。

独立開発者:不安定な接続からリモートビルドを実行し、作業中の端末に戻りたい方。
CIエンジニア:手動ビルドの調査中に、ログや結果を後から確認したい方。
リモートMac運用担当者:SSH切断、ビルド終了、ホスト停止を切り分けたい方。

SSHの切断だけでビルドの状態は決まりません

SSHクライアント、tmuxのセッション、xcodebuildプロセス、リモートMac本体は、それぞれ異なる状態を持ちます。SSH接続が切れてもビルドが続く場合はありますが、端末が閉じられたときの挙動やプロセスの終了は環境によって異なるため、切断そのものから結果を推測しないでください。

AppleはxcodebuildをXcodeのコマンドラインツールとして案内しています。これはコマンドラインからビルドやテストを実行するためのツールですが、SSH切断後も処理が続くことを保証する説明ではありません。AppleのXcodeコマンドラインツール資料を、コマンドの用途確認に使いましょう。

切断後は、別のSSH接続からホストに到達できるか、ビルドプロセスが残っているか、コマンドが終了したか、結果ファイルがあるかを順番に確かめます。プロセス一覧にxcodebuildが見つかったことだけでは、ビルド成功の証拠になりません。SSHで再ログインできても、以前の端末出力や終了状態が復元されたとは限りません。

SSHが切れた後、リモートMacのビルドは続いていますか?
断言せず、新しい接続からプロセスとログを調べてください。ネットワークの一時的な切断、端末アプリの終了、プロセスへの終了シグナル、ホスト自体の停止では、確認すべき原因が異なります。

tmuxを使うと再接続後に何を確認できますか?

tmuxはリモートMac上で端末セッションを管理し、端末から切り離した後にそのセッションへ戻るためのツールです。手元のMacだけでtmuxを起動しても、リモート側のセッション管理にはなりません。tmuxの入門資料と公式マニュアルで、セッションの作成、切り離し、再接続の動作を確認できます。

リモートMacでtmuxを使い、ビルドセッションを保つには?
まずSSHで対象のMacに接続し、tmuxがそのホストにインストールされていることを確認します。導入方法は利用環境の管理ルールに従い、コマンドが見つからない場合は作業を始める前に準備してください。

command -v tmux
tmux new -s ios-build

作成されたセッション内でビルドを実行します。たとえばログを残す場合は、プロジェクトで採用しているスキームや保存先に置き換えて、次のように実行できます。

set -o pipefail
xcodebuild -scheme "<スキーム>" -destination "<宛先>" build 2>&1 | tee "$HOME/xcodebuild.log"
status=$?
printf '%s\n' "$status" > "$HOME/xcodebuild.exit"

pipefailを有効にしたうえで、直前のパイプラインの状態をファイルに記録しています。ログは後から読み返すためのものであり、記録された終了状態や成果物とあわせて判断してください。"$HOME/xcodebuild.log"などの保存先は例なので、プロジェクトの運用に合う場所へ変更します。

ビルド中に端末から切り離すには、tmuxの既定キー操作であるCtrl-bの後にdを押します。これはセッションを終了する操作ではなく、接続中の端末を切り離す操作です。キー操作やセッション動作は環境設定で変わることがあるため、tmuxの公式マニュアルも参照してください。

再度SSHで接続した後、実行中のビルドに戻るには?
リモートMacに接続してセッション一覧を確認し、対象の名前を指定して再接続します。

tmux ls
tmux attach -t ios-build

セッションが一覧にないときは、単にSSH接続を復元しただけでは元の端末へ戻れません。ホストに接続できない場合は、ビルドプロセスの確認より先に、Macの稼働状況や接続経路を調べます。SSHの基本設定はリモートMacへの接続ガイドも参考になります。

切断中の結果をどう判定しますか?

再接続後は、端末の表示だけで成功・失敗を決めず、プロセス、記録した終了状態、ログ、成果物を照合します。Xcodeのテスト結果については、Appleのテスト結果と読み取り方の説明も確認してください。

SSH切断中にビルドが成功したか、失敗したかをどう確かめますか?
まずセッションに戻れるか確認し、次にプロセスの有無を調べます。セッションが消えている場合も、保存済みのログと終了状態を確認し、ビルドで生成するよう設定した成果物が実際に存在するかを調べてください。

pgrep -alf xcodebuild
cat "$HOME/xcodebuild.exit"
tail -n 80 "$HOME/xcodebuild.log"

終了状態が記録されていない、ログが途中で切れている、成果物が見当たらない場合は、成功と扱わず追加調査が必要です。ログの最後にエラーがないことだけでも十分ではありません。テスト実行では、必要に応じて結果バンドルの保存先をプロジェクトの運用に合わせて指定し、Appleのテスト計画とコマンドライン利用の説明を確認してください。

画面上のスクロールバックは、端末セッションが失われると確認できないことがあります。実行開始時にログと終了状態を保存し、成果物の場所をチームで共有できるようにすると、切断後の確認を再現しやすくなります。ログの保存先、保持期間、機密情報の扱いも、プロジェクトの方針に合わせてください。

ホスト再起動やプロセス終了では、再実行を判断します

tmuxができるのは、端末から切り離したセッションへの再接続です。ホストの再起動、システム障害、プロセスの強制終了、ディスク容量不足が起きた後まで、ビルドが自動で続くわけではありません。ビルドの途中から再開できるとも限らないため、復旧前に原因と残った成果物を確認してください。

判断ツール:状態に合う対応を選びます

以下の条件を確認し、当てはまる行の対応を選んでください。SSH接続が戻ったことだけを根拠に、ビルド成功とは判定しません。

Xcodeやコマンドラインツールが使える状態かを確認する際は、Appleのコマンドラインツール導入手順を参照してください。コマンドや結果の扱いはXcodeのバージョンやプロジェクト設定に左右されるため、導入後は対象環境でビルドと結果確認を試してから運用に組み込みます。Appleのコマンドラインビルド資料も、利用するビルド手順の確認に役立ちます。

すでに手元のMacで安定してビルドでき、長期にわたる常時稼働や物理接続が必要なら、自前のMacを使うほうが適する場合があります。一方、Linux環境では使えないXcodeのツールチェーンが必要でも、専用機の購入までは避けたい場合、現在の環境ではmacOS専用ツールの不足、端末切断時の状態確認、実機の維持管理が負担になりえます。作業の稼働時間やログ保管の要件を先に検証し、必要な期間だけ使う選択肢としてHopVMのMacレンタルプランを確認してください。レンタルでも再起動後の自動復旧は別途設計が必要です。

専用物理ノード

SSH接続が切れても確認しやすい、専有クラウドMacをHopVMで

HopVMなら、Xcodeのビルドや自動化に使えるApple Silicon搭載の専有物理Macを、プロジェクトに合わせてレンタルできます。

構成を選んで申し込む