初回接続
鍵の権限、ホストフィンガープリント、ユーザー名、ポート、ローカルネットワークを確認し、接続失敗が認証前か認証後かを切り分けます。
接続の診断を始める曖昧に「もう一度試す」ことから始めません。まず接続先を確認し、ツールチェーン、依存関係、署名情報、ディスク、ログを確認します。各手順で確認すべき出力を示し、OakVPSの専用物理マシンでのiOSビルド、macOS自動化、MLX実験に対応します。
既存注文に関する問題は、コンソールにログインしてチケットを送信してください。公開ページに秘密鍵、署名証明書のパスワード、完全な支払い情報を送らないでください。
6つの入口から選べます。複数の段階にまたがる場合は、最初に異常が出た箇所から確認し、いきなり環境全体を消去しないでください。
鍵の権限、ホストフィンガープリント、ユーザー名、ポート、ローカルネットワークを確認し、接続失敗が認証前か認証後かを切り分けます。
接続の診断を始める現在のツールチェーン、プロジェクトのscheme、依存関係、署名ファイル、ディスク容量、書き出し可能な成果物を確認します。
ビルドコマンドを見るRuby環境、プラグイン、laneの引数、Xcodeのエラーを切り分け、最後の1行だけでなく完全なログを保存します。
自動化の出力を確認先に成果物をパッケージ化してチェックサムを生成し、アーカイブを転送します。書き込み中のビルドディレクトリや依存キャッシュを直接移動しないでください。
受け渡し手順を見るローカルネットワークが安定していること、切断後もタスクを継続できることを確認し、端末を離れる前に対話セッションを終了して一時ファイルを整理します。
セッションの境界を確認ユニファイドメモリ、モデルファイル、隔離環境、実験記録を順に確認します。環境の正常性を、再現できない速度の数値だけで判断しないでください。
実験環境を確認元のエラーを保存してから、変更する変数を一度に1つに絞ります。ユーザー名、ポート、鍵を連続して変更すると、原因を特定できなくなります。
ローカルで実行 chmod 600 ~/.ssh/oakvps_key。秘密鍵が他のユーザーから読み取れる場合、SSHクライアントは認証開始前にその鍵の使用を拒否します。
初回接続時は、端末に表示されたフィンガープリントをコンソールの接続情報と照合してから確認します。ホスト情報が変わった場合、古い記録を削除して検証を省略しないでください。
注文の接続情報に記載されたシステムユーザー名を使用し、メールアドレスやローカルPCのユーザー名をリモートコマンドに入力しないでください。
接続情報のポートを明示的に指定します。例: ssh -p 22 user@host。タイムアウトは通常認証前に、権限拒否は通常認証段階で発生します。
社内ネットワーク、VPN、ローカルファイアウォール、出口ポリシーが対象ポートを許可していることを確認します。信頼できるネットワークで再テストしても構いませんが、信頼できないネットワークでプロジェクトの認証情報を転送しないでください。
接続できたら、まず whoami、sw_vers と df -hを実行し、ユーザー、システムバージョン、ディスク空き容量を記録してからプロジェクト資料を取り込みます。
端末の最後の1行は結果であって、原因とは限りません。以下の3つのコマンドで、接続情報、Xcodeビルドの入口、fastlane laneの状態をそれぞれ確認します。実行前に例の引数を自分の接続情報、ワークスペース、schemeに置き換えてください。
$ ssh -i ~/.ssh/oakvps_key -p 22 oak@203.0.113.10
$ whoami
oak
$ sw_vers -productVersion
15.x
$ df -h /
確認ポイント:コマンドからリモートユーザー名が返れば、ネットワークと認証の段階は通過しています。以降の問題はシステム権限またはプロジェクト環境を確認してください。
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
$ xcodebuild -version
Xcode 16.x
$ xcodebuild -workspace App.xcworkspace \
-scheme App \
-destination 'generic/platform=iOS' \
build | tee build.log
確認ポイント:まずDeveloperディレクトリを確認し、次にワークスペースとschemeを確認します。 build.logを保存し、最後の失敗概要だけをコピーしないでください。
$ bundle exec fastlane lanes
$ bundle exec fastlane ios build \
--verbose 2>&1 | tee fastlane.log
[09:24:18]: Driving the lane 'ios build'
[09:24:19]: Resolving package dependencies
確認ポイント:laneを一覧表示できれば、Ruby依存関係の入口は利用可能です。後で失敗した場合は終了コードだけでなく、ログで最初に現れたエラーを探してください。
バージョン、キャッシュ、署名、ディスク、ログは相互に影響します。以下の順序なら不要な変更を減らし、次の担当者も同じ障害を再現できます。
| 順序 | 確認対象 | 実行または記録 | 判断基準 |
|---|---|---|---|
| 01 | Xcodeバージョン | xcodebuild -version と xcode-select -p |
プロジェクトが要求するツールチェーンと現在のアクティブディレクトリが一致し、コマンドラインとGUIが異なるバージョンを指していない。 |
| 02 | 依存キャッシュ | まずロックファイルを記録し、Swift Package、CocoaPods、またはプロジェクト固有のキャッシュ状態を確認する。 | ロックファイルが意図せず変更されていない。現在のエラーに関係するキャッシュだけを削除し、再利用できる依存関係をすべて消去しない。 |
| 03 | 署名情報 | ターゲット、bundle識別子、証明書の有効性、provisioning profileの対応関係を確認する。 | 署名情報が現在のビルドターゲットと一致し、パスワードや秘密情報がログ、リポジトリ、チケット添付に含まれていない。 |
| 04 | ディスク容量 | df -h、プロジェクトディレクトリの容量、DerivedDataの容量。 |
ビルドディレクトリ、依存関係、アーカイブ、一時ファイルに十分な空きがあり、異常に増加したディレクトリを個別に特定できる。 |
| 05 | 完全なログ | 次の tee を使って出力を表示・保存し、コマンド、時刻、終了コードを記録します。 |
ログに最初のエラー、コンテキスト、最終終了状態が含まれ、別のエンジニアが同じコマンドで再現できる。 |
依存関係の解決結果が突然変わった場合は、コミット前後のロックファイルの差分、パッケージソース設定、ネットワーク結果を確認します。キャッシュ自体の破損を確認した場合のみ該当範囲を削除し、再現可能な問題を一度きりの状態にしないでください。
証明書が利用できない、プロビジョニングプロファイルとbundle識別子が一致しない、またはビルドターゲットが誤っている可能性があります。エラーコードとターゲット名を記録し、証明書パスワード、秘密鍵、完全な署名情報をチケットに記載しないでください。
繰り返し実行するとキャッシュや一時ファイルが変わることがあります。最初の失敗後は、ログ、コマンド、ワークスペースの状態、ディスク情報を保存してから、変数を1つずつ変えて再テストしてください。
リモートウィンドウは操作の入口にすぎず、タスク状態を保存する唯一の場所にしてはいけません。コマンド、ログ、成果物、チェックサムを明確なディレクトリに保存します。
ローカルネットワーク、ホストフィンガープリント、対象ユーザー名、プロジェクト資料の入手元を確認します。機密ファイルはタスクに必要な場合だけ取り込みます。
ビルドや実験を復旧可能なセッション管理方式で実行し、標準出力を同時にログファイルへ書き込みます。
ファイルが保存され、タスク状態が記録されていることを確認してからGUIまたはSSHセッションを終了し、未保存の編集をウィンドウに残さないでください。
チームメンバーが離脱した後、またはタスク終了後に不要な鍵とアクセス権を無効化し、共有ディレクトリを確認します。
ビルドが終了したことを確認してから成果物をアーカイブします。生成中のディレクトリやデータベースファイルを転送しないでください。
ファイル名、ビルドバージョン、環境バージョン、生成コマンド、チェックサムを記録し、受信側が完全性を確認できるようにします。
ローカルで展開して重要ファイルを確認し、アーカイブが空のディレクトリでなく、必要なログも欠落していないことを確認します。
チームの方針に従い、一時鍵、トークン、署名情報、不要になったモデルのコピーを削除し、公開可能なビルド記録は残します。
MLXはApple Siliconのユニファイドメモリを使用します。モデルファイル、ランタイムの使用量、コンテキスト長、中間結果が空き容量に影響するため、モデルファイル自体のサイズだけで判断できません。また、1回の実行時間だけで環境性能を推測しないでください。
3つのプランはすべて専用物理マシンです。ベーシックはM4、16GBメモリ、256GBストレージ、アドバンストはM4、24GBメモリ、512GBストレージ、ハイメモリはM4 Pro、64GBメモリ、2TBストレージを搭載します。選択はモデル、データセット、並列タスクの実測使用量を基準にしてください。
プロジェクトごとにPython環境と依存バージョンを固定し、再現可能な依存関係一覧を保存します。システム環境に複数の実験バージョンを混在させないでください。
ダウンロードパッケージ、展開後のファイル、キャッシュ、出力ディレクトリの容量を個別に記録し、一時ファイル用の空きも確保して、実験途中の容量不足を防ぎます。
アクティビティモニタまたはコマンドラインでピーク使用量を記録します。明らかなメモリ圧迫が続く場合は、並列数を減らす、タスクを小さくする、設定を調整するなどの対応を行い、単に繰り返し実行しないでください。
コードバージョン、依存バージョン、モデル識別子、パラメータ、入力概要、出力先、異常情報を記録し、次回も同じ条件で再現できるようにします。
サポート担当者には、どの注文、どのノード、どの手順、どの時間帯に問題が発生したかを知らせる必要があります。情報が具体的であるほど、診断をすぐに始められます。
コンソールで確認できる注文IDを記載し、支払い証明や完全な決済情報は送信しないでください。
必須注文で使用しているノードと現在の接続先を明記し、ネットワーク経路と環境範囲を区別できるようにします。
必須タイムゾーン付きの時刻を使い、問題が継続的か断続的か、1回のタスクだけで発生したかを説明します。
必須正常な状態から始め、コマンド、引数、期待結果、実際の結果を順番に記載し、途中の操作を省略しないでください。
必須完全なエラーコンテキストと終了コードを添付し、秘密鍵、トークン、証明書パスワード、リポジトリ認証情報、プロジェクトの機密内容を削除してください。
添付推奨Oak M4、Oak M4 Plus、Oak M4 Proから選び、タスク期間に合わせて専用物理マシンをレンタルできます。注文後はコンソールで注文情報、接続情報、サポートチケットを確認できます。