コードリポジトリの権限
リポジトリでSSHと短期アクセストークンのどちらを使うか確認し、プライベート依存関係、サブモジュール、成果物リポジトリを一覧化します。長期間有効な個人秘密鍵はコピーせず、クラウドMac専用の鍵を生成してプロジェクトに必要な権限だけを付与してください。
注文から初回アーカイブまで
これは「ログイン方法」だけを説明するガイドではありません。2種類の物理デバイスから構成を選び、4つのアジア太平洋ノードのいずれかを決定したうえで、認証情報の強化、ツールチェーンの復元、コードと署名の検証、CI Runnerの接続を行い、検証可能な記録で初回タスクを受け入れます。
開始前の準備
準備段階では、デバイス構成、ノード、アクセス方法、データの管理責任を明確にします。どれか1つでも欠けると、その後の環境復元が場当たり的な試行錯誤になりやすくなります。
リポジトリでSSHと短期アクセストークンのどちらを使うか確認し、プライベート依存関係、サブモジュール、成果物リポジトリを一覧化します。長期間有効な個人秘密鍵はコピーせず、クラウドMac専用の鍵を生成してプロジェクトに必要な権限だけを付与してください。
証明書、プロビジョニングプロファイル、Keychainへのアクセス要件、アーカイブの書き出し方法を整理します。テストに必要なマスキング済みコピーだけを移行し、インポート順序とアクセス制御を記録してください。完全な認証情報をリポジトリやビルドログに保存してはいけません。
シンガポール、日本(東京)、韓国(ソウル)、香港から対象ノードを選びます。まず実際の業務ネットワークから接続経路をテストし、地域をまたぐチームでは主要操作者とCIの送信元ネットワークからそれぞれ検証します。
短期検証は日単位または週単位、安定運用するプロジェクトは月単位または四半期単位で設定できます。期間にかかわらず、バックアップ先、成果物の書き出し先、レンタル終了前の移行担当者をあらかじめ決めておきます。
注文と開通
注文時に決めるのはモデル、ノード、課金期間、オプションだけです。実際の利用可能状態はコンソールの最新情報を基準とし、掲載する2モデルはいずれも4つの提供ノードに対応しています。
NUMACS M4 Core M4、16GB RAM、256GB SSDを搭載し、単一プロジェクトの保守、日常のデバッグ、軽量な自動化に適しています。NUMACS M4 Plus M4、24GB RAM、512GB SSDを搭載し、マルチタスクビルド、大容量の依存キャッシュ、並列テストに適しています。
シンガポール、日本(東京)、韓国(ソウル)、香港から選択できます。主要操作者のネットワーク経路が安定し、往復遅延の低いノードを優先してください。CI接続前にRunnerのネットワークからも再測定します。
日・週・月・四半期単位でレンタルできます。環境復元、初回ビルド、障害修正、成果物の書き出しまでを含む期間にし、「インストールにかかる時間」だけで見積もらないでください。
大規模な素材ライブラリ、複数のXcodeバージョン、シミュレーターランタイム、長期ビルドキャッシュはすぐに容量を消費します。追加容量が必要な場合は、注文時に+1TB SSD、+2TB SSD、またはThunderbolt 5並列接続を選択できます。
初回の安全なログイン
デバイス情報を受け取っても、すぐにコードや証明書をインポートしないでください。まず認証情報のローテーション、アクセス経路の検証、管理者権限の確認を行い、クリーンな状態を記録します。
初めてmacOSのグラフィカルインターフェースに入ったら、専用の強力なパスワードを設定します。リポジトリ、メール、チーム共有システムのパスワードを再利用せず、認証情報をチャットや自動化スクリプトに書き込まないでください。
ローカルでこのデバイス専用のキーペアを生成し、公開鍵を認証済み鍵の一覧に登録します。鍵によるログインを確認してから不要なアクセス方法を無効にし、鍵のローテーション担当者を記録します。
解像度、キーボードレイアウト、クリップボードのポリシー、アイドル時の切断動作を確認します。グラフィカルツールにはリモートデスクトップ、スクリプトと診断にはSSHを使い、2つの経路を個別に検証します。
管理者権限が必要なコマンドを1回、制御された状態で実行し、ソフトウェアのインストールとシステム設定の権限が正常であることを確認します。権限の問題を解決するためにシステムのセキュリティ機能を無効化せず、コマンド、ファイル所有者、実行コンテキストを確認してください。
移行パス
ローカルディレクトリ全体を一度にコピーしないでください。データ、ツールチェーン、CIでは失敗原因が異なるため、分けて移行するとすばやくロールバックでき、問題がファイル、バージョン、実行環境のどこにあるか判断できます。
まずリポジトリ、構成一覧、必要な素材を移行し、大容量キャッシュは必要に応じて復元します。チェックサムまたはファイル数で結果を照合し、一時ディレクトリ、派生データ、古いアーカイブをまとめてコピーしないでください。
バージョン一覧からXcode、Homebrew、Ruby、Node.js、パッケージマネージャーを再インストールします。依存関係ロックファイルを復元の基準にし、キャッシュは高速化にのみ使い、再現可能なインストールの代わりにしないでください。
専用Runnerを登録し、作業ディレクトリ、キャッシュ範囲、同時実行数の上限、失敗ログの保持を設定します。まず署名なしのテストタスクを実行し、その後アーカイブと書き出しの手順を段階的に追加します。
開発環境のインストール
新しいデバイスで最も多い問題はツール不足ではなく、バージョンの組み合わせがずれることです。まず安定してビルドできる組み合わせを復元し、アップグレードは独立したブランチでテストします。
| 階層 | 固定する内容 | 復元方法 | 検証エビデンス |
|---|---|---|---|
| macOS | プロジェクトで検証済みのシステムメジャーバージョンとパッチ範囲 | 現在のシステムを記録し、初回移行ではメジャーバージョンをまたぐアップグレードを行わない | sw_vers |
| Xcode | Xcodeバージョン、コマンドラインツールのパス、SDK | 指定バージョンをインストールし、デベロッパーディレクトリを明示的に切り替える | xcodebuild -version |
| Homebrew | Brewfile、リポジトリの配布元、主要ツールのバージョン | 一覧に従って再インストールし、古いキャッシュディレクトリを直接コピーしない | brew bundle check |
| Ruby | インタープリターのバージョン、Bundlerのバージョン、Gemfile.lock | プロジェクトのバージョンファイルで復元してから依存関係をインストール | ruby -v |
| Node.js | ランタイムのバージョン、パッケージマネージャーのバージョン、ロックファイル | バージョンファイルに従ってインストールし、ロックファイルを固定するモードで復元 | node -v |
| プロジェクト依存関係 | CocoaPods、Swift Package、JavaScript依存関係 | レイヤーごとに復元し、各レイヤーの失敗ログを個別に保存 | 依存関係の解決で暗黙のアップグレードが発生しない |
初回のビルド成功後、システム、Xcode、Ruby、Node.js、パッケージマネージャー、主要依存関係のバージョン出力を内部の運用記録に保存します。次回の移行や障害対応では、まず基準値と比較してから環境を変更します。
sw_vers
xcodebuild -version
ruby -v
node -v
brew bundle check
コードと署名の接続
コード取得、依存関係の復元、Keychainアクセス、アーカイブの書き出しを分けて検証します。正式プロジェクトで失敗しても、リポジトリ、依存関係、署名権限のどこに問題があるかを迅速に判断できます。
専用SSH鍵でリポジトリをクローンし、サブモジュールとプライベート依存関係の権限を確認します。依存関係はロックファイルモードでインストールし、移行中にすべての依存関係を更新しないでください。
テストに必要なマスキング済み署名アセットだけをインポートし、Keychainファイルの権限を制限します。リカバリーコード、秘密鍵、完全な決済認証情報をチケット、リポジトリ、共有ログに入れてはいけません。
まず最小のテストプロジェクトでビルド、テスト、アーカイブを実行し、その後正式プロジェクトに切り替えます。アーカイブの成功は書き出しの成功を意味しないため、書き出し手順のログと成果物のチェックサムを個別に保存します。
CI Runner接続
Runner接続で重要なのは「オンライン」であることではありません。タスクディレクトリを消去でき、キャッシュに上限があり、並列実行が互いに汚染せず、失敗ログを保持できることが重要です。
専用Runnerを登録し、署名なしの環境チェックタスクを1つだけ実行します。
依存関係の復元とユニットテストを追加し、キャッシュを消去しても成功することを確認します。
アーカイブ手順を追加し、非対話セッションでのKeychainアクセス範囲を検証します。
成果物の書き出し、チェックサム、アップロードを追加し、タスク全体の所要時間の基準値を記録します。
初回タスクの受け入れ
受け入れでは、コード取得から成果物の書き出しまでの全経路を確認し、所要時間、リソースの余裕、失敗時の再試行結果を記録します。後でツールチェーンを更新したりプロジェクトを切り替えたりする際、この記録が比較基準になります。
空の作業ディレクトリに対象コミットをクローンし、プライベート依存関係、サブモジュール、リポジトリ権限を検証します。古いディレクトリの残存データに依存しません。
ロックファイルで依存関係をすべて復元し、コールドキャッシュとホットキャッシュの所要時間を記録します。暗黙のバージョンアップがないことを確認します。
ユニットテストと必要な自動テストを実行し、失敗したケース、再試行回数、ログの場所を記録します。
ビルド構成、署名ID、アーカイブ場所を確認し、非対話タスクとグラフィカルインターフェースでの実行結果が一致することを確認します。
書き出したファイルが読み取れることを検証し、ファイルサイズとチェックサムを記録します。必要な成果物は独立したバックアップ先にもコピーします。
CPUピーク、メモリ負荷、ビルド前後のディスク空き容量、合計所要時間、キャッシュサイズを保存し、今後の異常比較に使います。
日常の運用
NUMACSの物理ノードは365日、年間を通じて稼働します。デバイス側ではキャッシュ、ディスク、バックアップ、アクセス認証情報を継続的に管理し、プロジェクトの状態が1台のマシンだけに残らないようにします。
作業ディレクトリ、DerivedData、シミュレーターランタイム、パッケージマネージャーのキャッシュ、過去のアーカイブを確認します。出所ごとに整理して削除し、範囲を説明できないディスク全体削除コマンドは使いません。
macOS、Xcode、Ruby、Node.js、主要依存関係を変更するたびにテストとアーカイブを再実行し、変更前後の所要時間と失敗差分を記録します。
SSH鍵、リポジトリアクセストークン、デバイスパスワードを定期的にローテーションします。メンバーの離脱や権限変更時には該当アクセスを直ちに取り消し、個人鍵を共有しません。
レンタル終了前にコード変更、ビルド成果物、環境一覧、CI構成、必要なログを書き出します。移行ファイルのチェックサムを確認し、別の場所で実際に開いて検証します。
モデル、ノード、期間、オプションを選択したら、コンソールで注文とデバイスを一元管理できます。決済はUSDT-TRC20とVisa / Mastercard / Amex(Stripe)のみ対応し、すべて米ドル(USD)で決済されます。