デバイスの身元を確認してから作業を開始
一度きりの引き渡し情報を受け取り、リージョン、アドレス、ホストフィンガープリントを確認します。初期パスワードを変更し、手元に確認記録を保存してください。
ここでは概念ではなく、項目ごとに実行できる手順を紹介します。まず専用物理ノードの身元確認とセキュリティ設定を行い、Xcode、署名素材、自動化タスクを準備します。問題が起きたら、統一した形式でネットワーク出力とビルドログを収集してください。
コマンド、ツール、症状を入力してください。例:「ホストフィンガープリント」「Archive」「DNS」「パスワード」。テーマで絞り込むこともできます。フィルターは下のガイドカードだけに適用され、手順本文は非表示になりません。
一度きりの引き渡し情報を受け取り、リージョン、アドレス、ホストフィンガープリントを確認します。初期パスワードを変更し、手元に確認記録を保存してください。
Xcodeとコマンドラインツールのパスを確認し、署名用キーチェーンを分離します。ソース、キャッシュ、アーカイブ、エクスポート用ディレクトリも分けてください。
コードのバージョンを固定し、キャッシュを復元、署名を読み込み、アーカイブと成果物のエクスポートを実行します。最後にファイルとログを機械可読な形式で検証します。
接続性、経路、名前解決、対象ポートを個別に確認します。単発のpingや途中で切れたログで完全な診断情報を代用しないでください。
初回ログイン時にパスワードを更新し、リモートから離れる前にグラフィカルセッションをロックします。チケットを送る前に鍵、トークン、署名素材を削除してください。
キーワードを短くするか、「すべて」に切り替えてください。注文やノードに関する問題は、コンソールにログインし、時刻と完全なログを含むチケットを送信してください。
RunnerVMが提供するのは仮想マシンではなく、専用物理Mac miniです。初回操作ではコマンドを急いで実行するのではなく、注文に対応するデバイスへ接続していることを確認し、初期アクセスをチーム独自の安全な設定に置き換えます。
注文ID、ノードリージョン、接続アドレス、SSHポート、VNCパラメータ、初期ユーザー名を確認します。完全な認証情報をチャットで転送しないでください。チームで共有する場合も、実際の作業者に必要な項目だけを渡します。
コンソールに表示されたホストフィンガープリントと、初回SSH接続時の警告を1文字ずつ照合します。アルゴリズムやダイジェストが一致しない場合は接続を停止し、チケットを送信してください。異常を回避するためにローカルのknown_hosts記録を削除してはいけません。
注文に記載されたホスト、ポート、ユーザー名で接続します。ログイン後、まず sw_vers、uname -m と hostnameを実行し、システムバージョン、Apple Siliconアーキテクチャ、デバイス名を引き渡し記録に書き込みます。
ローカルのVNCクライアントに、コンソールに表示されたアドレス、ポート、パスワードを入力します。初回はデフォルト解像度でキーボード、ポインタ、ウィンドウの拡大縮小を確認し、セッションが安定してから画面サイズを上げてください。
初期パスワードを直ちに変更し、SSH公開鍵と管理者権限を確認して、タスクに必要なアクセスだけを残します。その後SSHとVNCに再接続し、新しい認証情報が有効であることを確認してからプロジェクトや署名素材を取り込んでください。
ここでは一般的なビルドタスクの流れに沿って、SSH、xcodebuild、fastlaneの出力例を示します。コマンド内のホスト、ワークスペース、Scheme、エクスポート設定、laneはプロジェクトの実際の値に置き換えてください。すべてのリポジトリでそのまま使えるとは限りません。
$ ssh -p 22 runner@10.0.0.12
Host key fingerprint: SHA256:…
$ sw_vers
ProductName: macOS
$ uname -m
arm64
$ xcodebuild archive \
-workspace RunnerApp.xcworkspace \
-scheme RunnerApp \
-archivePath build/RunnerApp.xcarchive
** ARCHIVE SUCCEEDED **
$ bundle exec fastlane ios build
[08:42:16]: Resolving signing settings
[08:43:02]: Archive completed
[08:43:11]: Export verified
[08:43:11]: fastlane finished successfully
環境の問題は、Xcodeが開くかどうかではなく、グラフィカルインターフェースの選択、コマンドラインパス、プロジェクト設定、署名コンテキストが一致しているかどうかにあることが多いものです。以下の順で確認すると、ツールチェーンとプロジェクトの問題を迅速に切り分けられます。
実行 xcodebuild -version と xcode-select -pを実行します。ノードに複数のバージョンがインストールされている場合は、まずプロジェクトの要件を確認してから開発者ディレクトリを切り替え、GUIと自動化タスクで異なるバージョンが使われないようにします。
実行 xcrun --find xcodebuild、xcrun simctl list 、および署名なしのプロジェクト解析を1回実行します。ツールが見つからない、またはSDK一覧に異常がある場合は、プロジェクトファイルを直接変更せず、先にツールチェーンを修復してください。
自動化タスクで使う証明書を専用キーチェーンに入れ、明確なロック解除手順と最小限のアクセス範囲を設定します。パスワードをリポジトリ、スクリプト引数、ビルドログに書き込まないでください。
証明書名、有効期限、チームID、プロビジョニングプロファイルのUUIDを記録し、Bundle Identifierがターゲット設定と一致することを確認します。取り込み後、 security find-identity -v -p codesigning で利用可能な署名IDを検証します。
ソース、依存関係キャッシュ、DerivedData、Archive、Export、ログを分離します。各タスクに固有のアーカイブパスを使い、共有キャッシュには再生成可能な内容だけを保存して、署名素材が混入しないようにします。
自動化の目的はローカルスクリプトをリモートへ移すことではなく、入力、環境、署名、出力を再現可能にすることです。各段階で明確な記録を残し、失敗箇所を特定できるようにします。
コミットハッシュまたは保護されたタグを使い、動き続けるブランチ先端に依存しないでください。サブモジュールのバージョン、Git LFSの状態、リポジトリがクリーンかどうかを記録します。
git checkout --detach <commit>
キャッシュキーには少なくともロックファイルのダイジェスト、ツールバージョン、アーキテクチャを含めます。キャッシュミス時は通常どおりインストールし、「必ずキャッシュにヒットすること」をビルド成功の条件にしないでください。
bundle check || bundle install
タスク専用キーチェーンをロック解除し、一致するプロビジョニングプロファイルを取り込み、利用可能な署名IDを検証します。鍵やパスワードを標準出力に書き出してはいけません。
security find-identity -v -p codesigning
ワークスペース、Scheme、Configuration、Destination、アーカイブパスを明示的に指定します。完全なログとxcodebuildの終了コードを保存してください。
xcodebuild archive …
エクスポート設定は秘密情報を含めず、バージョン管理に含めます。エクスポートとアーカイブのディレクトリを分け、再実行時に元のxcarchiveを上書きしないようにします。
xcodebuild -exportArchive …
ファイルの存在、サイズ、ダイジェスト、署名情報、タスクの終了コードを確認し、成果物IDをコミット、Xcodeバージョン、ログパスと関連付けます。
shasum -a 256 build-output
リモートデスクトップは、初回のGUI設定、Xcode画面の状態確認、目視確認が必要な作業に適しています。ビルドの継続は、ローカルのVNCウィンドウが接続を維持しているかどうかに依存させないでください。
コンソールに表示されたアドレス、ポート、ユーザー名、パスワードを厳密に使用します。クライアントが接続設定ファイルに対応していても、同期される平文ファイルにパスワードを書き込まないでください。
初回接続はデフォルトサイズで行います。操作が安定していることを確認してから段階的に解像度を上げてください。入力遅延が発生したら、まず色深度と画面サイズを下げ、その後ネットワーク経路を確認します。
デバイスから離れる前にグラフィカルセッションをロックし、VNCクライアントを閉じるだけで済ませないでください。担当者が交代するときは不要になったアクセス権を取り消します。
継続的なビルドはCI runner、launchd、tmux、その他の復旧可能なセッションで実行してください。一度は意図的に切断し、タスクとログへの書き込みが続くことを確認します。
注文リージョン、デバイス名、現在のログインユーザーを確認します。
ビルドが実行中かどうかを画面出力だけで判断しないでください。
切断後、SSHでプロセス、ログの増加、終了状態を確認します。
一時公開鍵、一回限りのファイル、不要になった認証情報を削除します。
ネットワーク問題では、「どこから、いつ、どの対象へアクセスし、どんな完全な出力が得られたか」を明確にします。スクリーンショット1枚や「接続が遅い」という説明だけでは、ローカルネットワーク、経路、DNS、ポートポリシー、対象サービスの状態を切り分けられません。
一定数のパケットを連続送信し、最小・平均・最大遅延とパケット損失率を保存します。1回の応答で接続全体の品質を判断しないでください。
ping -c 20 target-host
問題が発生した送信元ネットワークから実行し、全ホップを保存します。中間ノードが応答しなくても回線断とは限らないため、最終対象に到達できるかと併せて判断します。
traceroute target-host
現在のDNSサーバー、返されたアドレス、問い合わせ時間を記録します。ネットワークごとに結果が異なる場合は、両側の出力を同時に提出し、結果を手作業で書き換えないでください。
dig target-host
SSHまたはプロジェクトで実際に使うポートを個別にテストします。接続成功はTCPに到達できたことを示すだけで、認証や上位プロトコルの完了を意味しません。
nc -vz target-host 22
提出前にパスワード、秘密鍵、トークン、業務データを削除します。ただし、タイムスタンプ、エラーコード、経路のホップ数、コマンドパラメータは削除しないでください。
購入前の質問、一般的な問い合わせ、特定の注文に紐づかない説明はメールで送信できます。ノード、ビルド失敗、接続異常、請求記録に関する問題は、コンソールにログインしてチケットを送信してください。注文に紐付け、対応状況を継続して確認できます。
初回接続、環境構築、自動化、ネットワーク診断から適切な手順を選びます。実行済みの手順、コマンド、結果、最初に異常が発生した箇所を記録してください。
注文ID、ノードリージョン、問題発生時刻、再現手順、期待結果、実際の結果、機密情報を除いた完全なログを提供します。ビルド問題ではコミットとXcodeのバージョンも記載してください。
問題に最も近いカテゴリーを選び、ログを添付または本文のコードブロックとして提出します。1つのチケットは1つの問題に集中させ、ネットワーク、ビルド、請求の異常を混在させないでください。
再テスト後も元のチケットに返信し、新しい時刻、コマンド、出力を追加します。緊急の場合もコンソールで対応状況を確認し、同じチケットを複数作成しないでください。
接続失敗、ノード異常、ビルド環境、請求確認、継続対応が必要な問題に適しています。チケットを注文に紐付け、対応のタイムライン全体を保存できます。
購入前の選定、手順確認、セキュリティ報告、ノードとの紐付けが不要な説明に適しています。メールの件名に問題のカテゴリーを記載し、本文にパスワードや鍵を含めないでください。
お問い合わせページでは、購入前、技術、請求、セキュリティに関する必須情報を案内しています。メール送信前の資料確認に利用できます。
以下の回答は、デバイスの引き渡し、接続方法、ビルドタスク、サポート資料を区別し、誤った方向での試行を減らすためのものです。
いいえ。注文に対応する専用物理Mac miniノードで、構成はRunner M4:Mac Mini M4、16GB RAM、256GB SSDです。リモート接続はアクセス方法にすぎず、サービスが共有仮想リソースになることはありません。
タスクの起動方法によります。CI runner、launchd、tmux、独立したバックグラウンドプロセスは通常VNCウィンドウに依存しません。一方、グラフィカルセッションに直接紐付いた対話型タスクはセッション状態の影響を受ける場合があります。本番利用前に一度切断し、プロセス、ログ、終了状態を確認してください。
SSHとVNCクライアント、チーム内の認証情報保管方法、プロジェクトが必要とするXcodeバージョン、署名素材の一覧、リポジトリに書き込まない秘密情報管理手順を準備します。引き渡し情報を受け取ったら、まずホストフィンガープリントとデバイスの身元を確認してください。
自動的には変わりません。Runner M4は日単位、週単位、月単位、四半期単位で注文でき、注文期間と処理状況はコンソールの記録に従います。特定の注文を確認する場合は、コンソールから注文に関連付けたチケットを送信してください。
保持するアーカイブ、成果物、機密情報を除いたログを先にエクスポートし、その後ソースワークスペース、一時署名キーチェーン、プロビジョニングプロファイル、一時公開鍵、アクセストークン、プロジェクトキャッシュ内の機密情報を削除します。平文の認証情報をシェル履歴やスクリプト引数に残さないでください。
まず実際のオフィスネットワークまたはCIの送信元から、対象リージョンへの遅延と経路をテストします。そのうえでチームのタイムゾーンと成果物の転送先を考慮して選択してください。Runner M4はシンガポール、日本・東京、韓国・ソウル、香港、米国東部の5ノードで注文できます。実際の利用可否はコンソールのリアルタイム表示に従います。
Runner M4と対象リージョンを選び、注文完了後、このページの手順に従って接続を確認し、ツールチェーンを準備して、最初の再現可能なビルドタスクを実行します。