まず障害の層を特定し、診断可能な情報を送る
接続できない、ビルドに失敗する、runnerがキューで止まる場合も、いきなり環境を再構築する必要はありません。注文、ネットワーク、システム、ツールチェーンの4層を順に確認し、重要なログをサポートへ共有しましょう。
- VNC、SSH、Xcode、CI/CDを分けて診断
- 注文番号、ノード、時刻、完全なエラー内容を記載
- キー、トークン、署名パスワードはログから削除
6つのサポート入口、6つの確認ポイント
問題が接続、ビルド、自動化、ネットワーク、ストレージ、請求のどれに当たるかを判断します。正しく分類すれば、複数のログを行き来する手間を減らせます。
VNC画面とセッション
画面が真っ黒、タイムアウト、キーボード配列、クリップボード、セッション切断を確認します。まずクライアント名、ネットワーク出口、発生時刻を残してください。
署名、依存関係、アーカイブ
証明書、プロビジョニングプロファイル、Keychain権限、DerivedData、依存キャッシュ、ディスク容量、書き出し設定を確認します。
Runnerキューと作業ディレクトリ
ラベルの一致、サービスプロセス、プロジェクト権限、同時実行数、作業ディレクトリの権限、失敗後のクリーンアップを確認します。
リポジトリ、依存ソース、リモートアクセス
ローカルネットワーク、ノードの外向き接続、コードリポジトリ、依存パッケージの取得元を切り分け、単一サービスのタイムアウトをマシン全体のオフラインと誤認しないようにします。
容量評価と拡張相談
まずプロジェクト、DerivedData、依存キャッシュ、アーカイブ、モデルファイルの使用量を確認し、+1TB、+2TB SSDまたは並列構成について相談します。
期間、追加項目、支払い記録
注文番号、請求期間、支払い区分、画面の表示内容を提示します。公開メールに完全な支払い情報や機密情報を送らないでください。
マシンへの到達性を確認してからツールチェーンへ進む
順番どおりに実行してください。前の手順を確認せずにキャッシュ削除や依存関係の再インストールを行うと、元の障害の手がかりが失われます。
-
01
注文層
注文ステータスを確認
コンソールにログインし、注文が納品済みであること、機種、期間、ノードが対象と一致することを確認します。注文情報に問題があれば、まず注文番号と画面の表示内容を記録します。
-
02
アドレス層
ノードアドレスを確認
VNCとSSHに使用するアドレスとポートが納品情報のものか確認します。古いノード、ブックマーク、別注文の接続設定は使わないでください。
-
03
アクセス層
アカウント認証情報を確認
ユーザー名、パスワード入力、キーボードの大文字・小文字状態を確認します。パスワード、秘密鍵、復旧情報を問い合わせ本文に貼り付けないでください。
-
04
デスクトップ層
VNCクライアントを比較テスト
クライアント名、バージョン、画質設定を記録します。可能であれば別のローカル端末またはネットワークでも再テストし、クライアントの問題か切り分けます。
-
05
ネットワーク層
SSH接続性をテスト
DNS名前解決、接続確立、認証のどの段階で止まるかを記録します。VNCは接続できなくてもSSHが正常なら、まずマシン全体のネットワークではなくグラフィカルセッションを確認します。
-
06
リソース層
ディスク容量を確認
システムディスクの空き容量に加え、DerivedData、依存ディレクトリ、アーカイブ、シミュレーター、モデルファイルを確認します。容量不足は原因が分かりにくいビルドエラーを引き起こします。
-
07
ツール層
Xcodeバージョンを固定
実際に選択されているXcodeのパスとバージョンを記録し、CIスクリプトと対話型ビルドが同じツールチェーンを使っていることを確認してから、失敗したコマンドを再実行します。
画面、ネットワーク、入力の問題を分ける
VNCはグラフィカルセッション、SSHはコマンドライン経路です。個別にテストすれば、障害がローカルクライアント、ネットワーク経路、ノードセッションのどこにあるかを素早く判断できます。
| 症状 | まず行うこと | 記録する情報 | 避けること |
|---|---|---|---|
| VNC画面が真っ黒 | セッションの初期化を待ち、接続を一度確立し直して、SSHが正常に応答するか確認します。 | クライアント名、発生時刻、ノード、SSHテスト結果、画面が真っ黒な状態のスクリーンショット。 | 強制的な再接続を連続して行わず、システムやユーザー設定をすぐに削除しないでください。 |
| 接続タイムアウト | ローカルネットワークを切り替えて再テストし、アドレスとポートを確認したうえで、名前解決のタイムアウトと認証タイムアウトを切り分けます。 | ローカルネットワークの種類、エラー原文、開始時刻と失敗時刻、別ネットワークでの再テスト結果。 | ログにパスワード、秘密鍵、完全な認証情報を公開しないでください。 |
| キーボード配列の異常 | ローカルとリモートのキーボード配列、入力方式、修飾キーの割り当てを確認し、プレーンテキストエディタで検証します。 | クライアント、キーボード配列、異常なキー、再現手順。 | IDEのショートカットだけで判断せず、まずアプリ固有のキー設定を除外してください。 |
| クリップボードが使えない | クライアントでクリップボード同期が許可されていることを確認し、プレーンテキストと短い内容を個別にテストします。 | コピー方向、内容の種類、クライアントバージョン、すべてのアプリで失敗するかどうか。 | キー、トークン、署名パスワードをテスト内容に使わないでください。 |
| セッションが切断される | 切断前の操作と継続時間を記録し、SSHがまだオンラインか、ローカルネットワークが切り替わっていないか確認します。 | 正確な発生時刻、前面アプリ、ネットワーク変更、再接続結果、関連ログ。 | 障害発生時のリソース状態が上書きされるため、ビルドタスクを何度も再起動しないでください。 |
最初の有効なエラーから確認し、最後の行から始めない
署名、キャッシュ、ディスク、書き出しのエラーは連鎖して発生することがあります。ツールチェーンと再現コマンドを固定し、ログで最初に現れた明確な失敗原因から確認します。
証明書とプロビジョニングプロファイル
Bundle Identifier、チーム、証明書の種類、プロビジョニングプロファイルの用途が一致していることを確認します。自動署名と手動署名を同じターゲットで混在させる場合は、変更内容を記録してください。
- 失敗したtargetとconfigurationを記録
- 署名アセットの有効期限と適用範囲を確認
- codesignの完全なエラーコンテキストを保持
Keychain権限
対話型ビルドは成功してCIビルドだけ失敗する場合、runnerセッションが必要な署名項目にアクセスできるか、タスクの実行コンテキストに権限差がないかを重点的に確認します。
- ローカル端末とrunnerの実行ユーザーを比較
- タスク実行時のキーチェーン状態を確認
- ログから署名パスワードと機密値を削除
DerivedDataと依存キャッシュ
まずエラーが安定して再現するか確認し、対象プロジェクトだけを選んでクリーンアップします。ディスク全体のキャッシュ削除を標準手順にすると、実際に壊れたキャッシュ層を特定しにくくなります。
- キャッシュディレクトリとヒット戦略を記録
- lockfileと依存関係マネージャーのバージョンを固定
- クリーンアップ前後のビルドログを1回ずつ保持
ディスク容量
アーカイブ、シミュレーター、依存関係、過去の生成物が同時に容量を使用します。容量不足は書き込み失敗だけでなく、依存関係の展開や署名処理の異常として現れることもあります。
- システムディスクの空き容量を記録
- プロジェクトごとにアーカイブとキャッシュの使用量を確認
- クリーンアップ前に保持すべき生成物を確認
アーカイブと書き出し
archiveの作成失敗とexportの失敗を分けます。前者はコンパイルと署名、後者は書き出しオプション、対象チャネル、アーカイブ内の署名情報を重点的に確認します。
- archiveが正常に生成されたかを記載
- 書き出し設定とエラー概要を保持
- 生成物の対象とschemeが一致することを確認
最小再現コマンド
問い合わせには作業ディレクトリ、Xcodeバージョン、scheme、configuration、実行コマンドを明記します。CIだけで失敗する場合は、機密情報を除いた環境差分も提示してください。
- エラー前後のコンテキストを少なくとも1区間保持
- グラフィカルインターフェースでのビルド成否を記載
- 試したが効果のなかった手順を列挙
ラベルが実行先を決め、ディレクトリが失敗後に残るものを決める
キューが進まない場合はまずラベルとオンライン状態を確認します。タスク開始後に失敗する場合は、実行ユーザー、作業ディレクトリ、同時実行数、クリーンアップ方針を確認します。
4つの変数を必ず一緒に記録
タスクが要求するラベルとrunnerの登録ラベルが完全に一致し、プロジェクトやブランチの条件で除外されていないことを確認します。
ディレクトリは専用の実行ユーザーが読み書きできるようにし、状態が残る一時パスをプロジェクト間で共有しないでください。
メモリ、ディスク、ビルド形式に応じて同時実行数を設定します。タスクが多い場合は、キュー待ちなのかリソース競合なのかを先に判断します。
各タスク終了後に何を保持し何を削除するかを明確にし、失敗タスクには十分なログと診断用生成物を残します。
runs-onとrunnerグループを確認
リポジトリまたは組織のrunnerアクセス範囲、ラベル表記、サービス状態、作業ディレクトリ権限を確認します。タスクが待機状態なら、完全一致するオンラインrunnerが存在するかを先に確認します。
tagsとプロジェクト権限を確認
job tags、runnerの固定範囲、プロジェクト権限、同時実行設定を確認します。タスク開始後に失敗した場合は、executorログとプロジェクトスクリプトの出力を追加します。
実行IDとライフサイクルを固定
runnerソフトウェア、起動方法、実行ユーザー、作業ディレクトリ、クリーンアップスクリプトを記載します。カスタムスケジューラーでは、タスク取得、タイムアウト、終了コードの処理方法も記録します。
8つの用語で問題の範囲を統一
相談時に同じ用語を使うと、物理リソース、リモートプロトコル、自動化ソフトウェアを混同せずに説明できます。
- 物理ノード
- macOSが実際に稼働する納品済みのApple Siliconデバイスであり、共有ホストから切り出した仮想インスタンスではありません。
- 専有
- 注文に対応する計算資源、メモリ、ローカルストレージをそのユーザーが使用し、他の利用者と同じ実行インスタンスを共有しません。
- 仮想マシンではない環境
- システムは物理デバイス上で直接動作します。トラブルシューティングでは、実際のmacOSホスト、ネットワーク、周辺機器の経路として理解してください。
- VNC
- macOSのグラフィカルインターフェースにアクセスするリモートデスクトッププロトコルです。画面、入力、クリップボードの問題は通常、クライアントとセッション層から確認します。
- SSH
- コマンドライン接続と自動化実行に使うプロトコルです。ノードがオンラインか、グラフィカルセッションの障害が独立しているかを判断するのに役立ちます。
- self-hosted runner
- チームがクラウドMacに配置し、CIプラットフォームのタスクを受け取る実行プログラムです。ラベルとプロジェクト権限はチームが設定します。
- ビルドキャッシュ
- 再ダウンロードや再コンパイルを減らすために保持する依存関係または中間生成物です。キャッシュにはバージョンキー、容量上限、クリーンアップ方針が必要です。
- 並列構成
- 対象タスク向けに複数デバイスまたはThunderbolt 5接続を相談する構成です。すべてのビルドツールが自動的に線形加速するわけではありません。
サポートが情報を受け取り次第、診断を始められるようにする
問い合わせの価値は文章量ではなく、時刻、対象、再現手順、元のエラーが揃っているかで決まります。
注文番号とノード
問題が発生した注文番号と、シンガポール、東京、ソウル、香港のうち実際のノードを明記します。複数台ある場合はそれぞれに記載してください。
再現時刻
タイムゾーンを含む発生時刻と継続時間を提示します。繰り返し発生する場合は、直近2~3回の時刻を列挙します。
エラーログ
エラー前後のコンテキスト、実行コマンド、終了コードを保持します。スクリーンショットは補足に使えますが、コピー可能なログ本文の代わりにはしないでください。
実施済みの手順
確認、変更、再テストした内容を順番に列挙し、各結果を記載します。サポートが同じ操作を繰り返し依頼するのを防げます。
期待結果と実際の結果
本来何を完了したかったのか、現在どの段階で止まっているのかを説明します。ビルド問題ではscheme、Xcodeバージョン、実行方法も記載します。
認証情報をすべて削除
ログ、スクリーンショット、設定断片から、パスワード、秘密鍵、アクセストークン、署名パスワード、支払い情報、その他ログインや認証に使える内容を削除します。
注文問題はチケット、一般相談はメール
注文済みの問題は、注文とノードを関連付けやすいようコンソールから問い合わせを送信してください。一般的な構成相談はメールでご連絡いただけます: support@macvpsgo.com。
問題に応じて適切な対応キューへ
適切な入口を選ぶ方が、同じ質問を繰り返すより効果的です。ハードウェアや接続の問題には注文情報を添え、一般的な利用相談や法人ニーズは先に利用シーンを整理してください。
利用方法・構成相談
Xcodeバージョン、CI移行、同時実行規模、ストレージ要件、3つの構成プランについて相談できます。
お問い合わせページへVNCまたはSSHの障害
本ページの簡易セルフチェックを完了し、注文番号、ノード、発生時刻、比較テスト結果を添えてコンソールから問い合わせを送信してください。
接続障害の問い合わせを送信物理ノードの異常が疑われる場合
VNCとSSHの両方に接続できない、またはディスク、ネットワーク、デバイスの再現可能な異常がある場合は、タスクの繰り返しを止め、時刻とログを保存してください。
ハードウェア異常の問い合わせを送信注文・請求の問題
注文番号、期間、支払い区分、画面の表示内容を提示します。実際に利用できる決済ゲートウェイは、コンソールにリアルタイムで表示される内容をご確認ください。
請求に関する問い合わせを送信次のビルドを実行する準備はできましたか?
Go M4 Core、Go M4 Plus、Go M4 Proから選び、販売中の4つのノードから構成を設定できます。実際の利用可否はコンソールのリアルタイム表示をご確認ください。