注文から初回アーカイブまで

開発ワークフローをクラウドMacへ移行する

これは「ログイン方法」だけを説明するガイドではありません。2種類の物理デバイスから構成を選び、4つのアジア太平洋ノードのいずれかを決定したうえで、認証情報の強化、ツールチェーンの復元、コードと署名の検証、CI Runnerの接続を行い、検証可能な記録で初回タスクを受け入れます。

2モデル 固定ハードウェア構成
4ノード シンガポール、日本(東京)、韓国(ソウル)、香港
4期間 日・週・月・四半期単位でレンタル
デバイス運用シート 初回ビルド受け入れパス
準備完了
SOURCE ローカルMac
TARGET NUMACSクラウドMac
  1. 01
    安全な接続を確立 初期認証情報を変更し、SSH公開鍵を登録してリモートデスクトップを検証します。
    完了
  2. 02
    プロジェクトのツールチェーンを復元 Xcode、Ruby、Node.js、依存関係マネージャーのバージョンを固定します。
    未実施
  3. 03
    テストとアーカイブを実行 所要時間、ログ、成果物のチェックサム、ディスク空き容量を保存します。
    未実施
運用シートは「再現できる、ロールバックできる、照合できる」ことを完了条件とし、ツールのインストール完了だけを基準にしません。

開始前の準備

移行範囲を決めてから注文する

準備段階では、デバイス構成、ノード、アクセス方法、データの管理責任を明確にします。どれか1つでも欠けると、その後の環境復元が場当たり的な試行錯誤になりやすくなります。

A

コードリポジトリの権限

リポジトリでSSHと短期アクセストークンのどちらを使うか確認し、プライベート依存関係、サブモジュール、成果物リポジトリを一覧化します。長期間有効な個人秘密鍵はコピーせず、クラウドMac専用の鍵を生成してプロジェクトに必要な権限だけを付与してください。

B

署名アセットの管理

証明書、プロビジョニングプロファイル、Keychainへのアクセス要件、アーカイブの書き出し方法を整理します。テストに必要なマスキング済みコピーだけを移行し、インポート順序とアクセス制御を記録してください。完全な認証情報をリポジトリやビルドログに保存してはいけません。

C

ノードとネットワーク経路

シンガポール、日本(東京)、韓国(ソウル)、香港から対象ノードを選びます。まず実際の業務ネットワークから接続経路をテストし、地域をまたぐチームでは主要操作者とCIの送信元ネットワークからそれぞれ検証します。

D

契約期間と終了計画

短期検証は日単位または週単位、安定運用するプロジェクトは月単位または四半期単位で設定できます。期間にかかわらず、バックアップ先、成果物の書き出し先、レンタル終了前の移行担当者をあらかじめ決めておきます。

注文と開通

4つの選択でデバイス運用シートを決める

注文時に決めるのはモデル、ノード、課金期間、オプションだけです。実際の利用可能状態はコンソールの最新情報を基準とし、掲載する2モデルはいずれも4つの提供ノードに対応しています。

01 / MODEL

固定ハードウェアを選択

NUMACS M4 Core M4、16GB RAM、256GB SSDを搭載し、単一プロジェクトの保守、日常のデバッグ、軽量な自動化に適しています。NUMACS M4 Plus M4、24GB RAM、512GB SSDを搭載し、マルチタスクビルド、大容量の依存キャッシュ、並列テストに適しています。

02 / REGION

接続ノードを選択

シンガポール、日本(東京)、韓国(ソウル)、香港から選択できます。主要操作者のネットワーク経路が安定し、往復遅延の低いノードを優先してください。CI接続前にRunnerのネットワークからも再測定します。

03 / PERIOD

レンタル期間を選択

日・週・月・四半期単位でレンタルできます。環境復元、初回ビルド、障害修正、成果物の書き出しまでを含む期間にし、「インストールにかかる時間」だけで見積もらないでください。

04 / OPTIONS

ストレージと並列処理の要件を確認

大規模な素材ライブラリ、複数のXcodeバージョン、シミュレーターランタイム、長期ビルドキャッシュはすぐに容量を消費します。追加容量が必要な場合は、注文時に+1TB SSD、+2TB SSD、またはThunderbolt 5並列接続を選択できます。

初回の安全なログイン

入口を強化してからプロジェクトを復元

デバイス情報を受け取っても、すぐにコードや証明書をインポートしないでください。まず認証情報のローテーション、アクセス経路の検証、管理者権限の確認を行い、クリーンな状態を記録します。

  1. 01

    初期認証情報を変更

    初めてmacOSのグラフィカルインターフェースに入ったら、専用の強力なパスワードを設定します。リポジトリ、メール、チーム共有システムのパスワードを再利用せず、認証情報をチャットや自動化スクリプトに書き込まないでください。

  2. 02

    SSH公開鍵を設定

    ローカルでこのデバイス専用のキーペアを生成し、公開鍵を認証済み鍵の一覧に登録します。鍵によるログインを確認してから不要なアクセス方法を無効にし、鍵のローテーション担当者を記録します。

  3. 03

    リモートデスクトップを検証

    解像度、キーボードレイアウト、クリップボードのポリシー、アイドル時の切断動作を確認します。グラフィカルツールにはリモートデスクトップ、スクリプトと診断にはSSHを使い、2つの経路を個別に検証します。

  4. 04

    管理者権限を確認

    管理者権限が必要なコマンドを1回、制御された状態で実行し、ソフトウェアのインストールとシステム設定の権限が正常であることを確認します。権限の問題を解決するためにシステムのセキュリティ機能を無効化せず、コマンド、ファイル所有者、実行コンテキストを確認してください。

移行パス

移行を3つの検証可能なパスに分ける

ローカルディレクトリ全体を一度にコピーしないでください。データ、ツールチェーン、CIでは失敗原因が異なるため、分けて移行するとすばやくロールバックでき、問題がファイル、バージョン、実行環境のどこにあるか判断できます。

SOURCE ローカルMac
TARGET NUMACSクラウドMac
PATH 01

データ移行

まずリポジトリ、構成一覧、必要な素材を移行し、大容量キャッシュは必要に応じて復元します。チェックサムまたはファイル数で結果を照合し、一時ディレクトリ、派生データ、古いアーカイブをまとめてコピーしないでください。

検証結果 リポジトリのコミットが一致し、素材のチェックサムを検証済み。一時キャッシュは未移行
PATH 02

ツールチェーンの復元

バージョン一覧からXcode、Homebrew、Ruby、Node.js、パッケージマネージャーを再インストールします。依存関係ロックファイルを復元の基準にし、キャッシュは高速化にのみ使い、再現可能なインストールの代わりにしないでください。

検証結果 コマンドパス、バージョン出力、プロジェクト依存関係が基準値と一致
PATH 03

CI接続

専用Runnerを登録し、作業ディレクトリ、キャッシュ範囲、同時実行数の上限、失敗ログの保持を設定します。まず署名なしのテストタスクを実行し、その後アーカイブと書き出しの手順を段階的に追加します。

検証結果 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アクセス、アーカイブの書き出しを分けて検証します。正式プロジェクトで失敗しても、リポジトリ、依存関係、署名権限のどこに問題があるかを迅速に判断できます。

REPOSITORY

クローンと依存関係の復元

専用SSH鍵でリポジトリをクローンし、サブモジュールとプライベート依存関係の権限を確認します。依存関係はロックファイルモードでインストールし、移行中にすべての依存関係を更新しないでください。

  • デフォルトブランチと対象コミットを確認
  • サブモジュールと成果物リポジトリへのアクセスを確認
  • 依存関係の解決失敗ログを保存
SIGNING

署名アセットをインポート

テストに必要なマスキング済み署名アセットだけをインポートし、Keychainファイルの権限を制限します。リカバリーコード、秘密鍵、完全な決済認証情報をチケット、リポジトリ、共有ログに入れてはいけません。

  • プロビジョニングプロファイルと対象識別子の一致を確認
  • 非対話タスクでのKeychainアクセスを検証
  • 証明書の有効期限とローテーション担当者を記録
ARCHIVE

テストアーカイブと書き出し

まず最小のテストプロジェクトでビルド、テスト、アーカイブを実行し、その後正式プロジェクトに切り替えます。アーカイブの成功は書き出しの成功を意味しないため、書き出し手順のログと成果物のチェックサムを個別に保存します。

  • ビルドターゲットとRelease構成を確認
  • アーカイブログの署名IDを確認
  • 書き出した成果物が読み取れ、チェックサムが安定していることを検証

CI Runner接続

Runnerを専用実行ノードとして管理する

Runner接続で重要なのは「オンライン」であることではありません。タスクディレクトリを消去でき、キャッシュに上限があり、並列実行が互いに汚染せず、失敗ログを保持できることが重要です。

接続パラメーター

実行ID
専用の低権限アカウントでタスクを実行し、管理者権限が必要な手順は個別に承認します。
作業ディレクトリ
作業領域のルートを固定し、プロジェクト間でDerivedData、一時鍵、未宣言キャッシュを共有しません。
同時実行数の上限
まず単一タスクの基準値から始め、メモリ、ディスク、ビルド時間に応じて段階的に増やします。
キャッシュ戦略
依存キャッシュにキー、容量、削除条件を設定し、キャッシュが無効でも完全に再ビルドできるようにします。
ログ保持
失敗した段階、コマンドの終了コード、主要ツールのバージョン、成果物パスを保持し、機密値は記録しません。

推奨する接続順序

  1. 01

    専用Runnerを登録し、署名なしの環境チェックタスクを1つだけ実行します。

  2. 02

    依存関係の復元とユニットテストを追加し、キャッシュを消去しても成功することを確認します。

  3. 03

    アーカイブ手順を追加し、非対話セッションでのKeychainアクセス範囲を検証します。

  4. 04

    成果物の書き出し、チェックサム、アップロードを追加し、タスク全体の所要時間の基準値を記録します。

初回タスクの受け入れ

一度の成功だけでなく、再利用できる基準値を残す

受け入れでは、コード取得から成果物の書き出しまでの全経路を確認し、所要時間、リソースの余裕、失敗時の再試行結果を記録します。後でツールチェーンを更新したりプロジェクトを切り替えたりする際、この記録が比較基準になります。

  1. コードを取得

    空の作業ディレクトリに対象コミットをクローンし、プライベート依存関係、サブモジュール、リポジトリ権限を検証します。古いディレクトリの残存データに依存しません。

    コミット値を記録
  2. 依存関係をインストール

    ロックファイルで依存関係をすべて復元し、コールドキャッシュとホットキャッシュの所要時間を記録します。暗黙のバージョンアップがないことを確認します。

    バージョン一覧を保存
  3. テストを実行

    ユニットテストと必要な自動テストを実行し、失敗したケース、再試行回数、ログの場所を記録します。

    テストレポートを保持
  4. アーカイブを生成

    ビルド構成、署名ID、アーカイブ場所を確認し、非対話タスクとグラフィカルインターフェースでの実行結果が一致することを確認します。

    アーカイブログを保存
  5. 成果物を書き出す

    書き出したファイルが読み取れることを検証し、ファイルサイズとチェックサムを記録します。必要な成果物は独立したバックアップ先にもコピーします。

    チェックサムを照合
  6. リソース基準値を記録

    CPUピーク、メモリ負荷、ビルド前後のディスク空き容量、合計所要時間、キャッシュサイズを保存し、今後の異常比較に使います。

    運用基準値を確立

日常の運用

接続し続けるだけでなく、復元できる状態を保つ

NUMACSの物理ノードは365日、年間を通じて稼働します。デバイス側ではキャッシュ、ディスク、バックアップ、アクセス認証情報を継続的に管理し、プロジェクトの状態が1台のマシンだけに残らないようにします。

WEEKLY

ディスクとキャッシュを確認

作業ディレクトリ、DerivedData、シミュレーターランタイム、パッケージマネージャーのキャッシュ、過去のアーカイブを確認します。出所ごとに整理して削除し、範囲を説明できないディスク全体削除コマンドは使いません。

AFTER CHANGE

環境基準値を更新

macOS、Xcode、Ruby、Node.js、主要依存関係を変更するたびにテストとアーカイブを再実行し、変更前後の所要時間と失敗差分を記録します。

REGULAR

アクセス認証情報をローテーション

SSH鍵、リポジトリアクセストークン、デバイスパスワードを定期的にローテーションします。メンバーの離脱や権限変更時には該当アクセスを直ちに取り消し、個人鍵を共有しません。

BEFORE EXIT

データを移行して終了

レンタル終了前にコード変更、ビルド成果物、環境一覧、CI構成、必要なログを書き出します。移行ファイルのチェックサムを確認し、別の場所で実際に開いて検証します。

レンタル終了前

最後の確認は「ファイルをコピーした」だけで終わらせない

  • 未プッシュのコードがすべて管理対象リポジトリに登録されている
  • 必要なアーカイブと書き出し成果物を独立した場所で検証済み
  • 環境バージョン、インストールスクリプト、CI構成を保存済み
  • 一時認証情報、秘密鍵のコピー、機密ログを削除済み

最初のデバイス運用シートを実行する準備はできましたか?

モデル、ノード、期間、オプションを選択したら、コンソールで注文とデバイスを一元管理できます。決済はUSDT-TRC20とVisa / Mastercard / Amex(Stripe)のみ対応し、すべて米ドル(USD)で決済されます。