検収から安定稼働まで

クラウドMacをビルドワークフローに接続

デバイス情報を受け取ったら、まず注文内容と物理ノードを確認し、接続、ツールチェーンの再現、CIランナー登録を行います。各手順に確認コマンド、完了基準、障害時に残す証拠を示します。

提供中のノード
5つ物理ノード
提供中の構成
2種類専用物理マシン
操作手順
9組確認ステップ
初回接続チェックリスト 順番に検証
01

納品記録を確認

ノード、構成、OSバージョン、利用期間、アクセス認証情報が注文確認情報と一致している必要があります。

検収
02

最初のセッションを確立

まずCLI接続を確認し、必要に応じてGUIセッションを確立して切断復旧をテストします。

接続
03

開発環境を再現

Xcode、依存ツール、作業ディレクトリを固定し、旧マシンのファイルをすべてそのまま上書きしないでください。

設定
04

実際のビルドを実行

実際のリポジトリでアーカイブまたはテストを一度実行し、所要時間、ログ、成果物の検証結果を記録します。

検証
提供状況 コンソールのリアルタイム表示を基準
開始前の準備

どのデバイス・ノードを、どれだけの期間使うかを確認

情報を確認する前に環境移行を始めないでください。まずコンソールにログインし、注文記録とデバイス詳細を項目ごとに照合します。不一致があれば画面情報を保存してチケットを送信してください。

01

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

ノードがシンガポール、日本・東京、韓国・ソウル、香港、米国東部のいずれかであることを確認します。ノードコードを記録し、主なオフィスネットワークから接続経路をテストします。

  • チームの主なアクセス地点とノードのタイムゾーンを確認
  • オフィスネットワークと予備ネットワークで個別にテスト
  • 単発のpingだけでなく、遅延、ジッター、パケットロスを記録
02

デバイス構成

構成は2種類です。情報を受け取ったら、チップ、メモリ、ストレージを項目ごとに照合してください。

  • ベーシック:M4、16GB、256GB
  • ハイエンド:M4 Pro、64GB、2TB
  • 追加ストレージは注文確認記録を基準
03

システムとアクセス情報

OSバージョン、ホスト名、接続先、ポート、仮認証情報を確認します。初回ログイン後、チームの規定に従って認証情報を直ちに更新してください。

  • パスワードや秘密鍵を公開ログに貼り付けない
  • 認証情報は管理下のシークレット管理ツールに保存
  • CLI接続とGUI接続に必要な情報をそれぞれ確認
04

利用期間と終了時刻

日、週、月、四半期単位でレンタルする場合も、開始前にデータのエクスポート時刻とタスク停止時点を決め、作業を最後に残さないようにします。

  • 利用期間の開始・終了情報を記録
  • 成果物のエクスポートとキャッシュ削除の時間を確保
  • 継続利用や変更の社内担当者を確認
初回接続ガイド

まずCLIでデバイスへの到達性を確認し、その後GUIセッションを確立

CLIは基本検収と自動化に、GUIセッションはXcode、シミュレータなど画面操作に適しています。両方を個別に検証し、一方の成功だけで接続全体が正常だと判断しないでください。

CLI接続

最小限の検証可能なセッションを確立

  1. 1
    接続先情報を確認

    コンソールからホストアドレス、ポート、ユーザー名をコピーし、文字と大文字・小文字を確認します。古いチケットの期限切れ情報を再利用しないでください。

  2. 2
    ホストフィンガープリントを検証

    初回接続時に納品情報と照合します。フィンガープリントが変わった場合は接続を停止して理由を確認し、ローカル記録を削除して再試行しないでください。

  3. 3
    読み取り専用チェックを実行

    現在のユーザー、ホスト名、OSバージョン、ディスク、Xcodeのパスを確認します。すぐにソフトウェアをインストールまたは削除しないでください。

  4. 4
    切断復旧を検証

    意図的に切断して再接続し、セッションの復旧方法、長時間タスクの保持方法、ログの保存先を確認します。

GUIリモートアクセス

画質とタスクの安定性を分けて検証

  1. 1
    控えめな画質から開始

    まず低い解像度と色品質でセッションの安定性を確認し、徐々に設定を上げます。画面のカクつきをデバイス性能の問題と誤認しないでください。

  2. 2
    認証情報とクリップボードを保護

    共有画面、録画、管理されていないクリップボードにパスワード、秘密鍵、証明書パスフレーズを表示しないでください。

  3. 3
    無人セッションをロック

    デバイスを離れる前にGUIセッションをロックします。複数人で作業する場合は同時刻の担当者を明確にし、環境の同時変更を避けてください。

  4. 4
    再接続後の状態を検証

    切断後に再接続し、前面アプリ、ビルドプロセス、ディスク書き込みが継続しているか確認します。画面の停止だけでタスク失敗と判断しないでください。

ターミナルで簡易チェック

読み取り専用コマンドでデバイスのベースラインを作成

以下のコマンドでチップ、メモリ、ディスク、OSバージョン、ネットワーク、開発ツールのパスを確認します。実行後は出力を保存しますが、チケット送信前にユーザー名、社内リポジトリのアドレス、その他の機密項目を削除してください。

DPLYMAC / FIRST-RUN CHECK
printf '\n== CHIP ==\n'
system_profiler SPHardwareDataType | grep -E "Chip|Memory"

printf '\n== DISK ==\n'
diskutil info / | grep -E "Device Node|File System|Disk Size|Free Space"

printf '\n== SYSTEM ==\n'
sw_vers
uname -m

printf '\n== NETWORK ==\n'
route -n get default | grep interface
ping -c 5 1.1.1.1

printf '\n== XCODE ==\n'
xcodebuild -version
xcode-select -p
swift --version

printf '\n== TOOL PATHS ==\n'
command -v git
command -v ruby
command -v fastlane

合格の判断基準

  • チップとメモリが注文構成と一致
  • ルートボリュームが読み書き可能で、必要な空き容量がある
  • システムアーキテクチャの出力がarm64
  • デフォルトネットワークインターフェースが存在し、連続テストで目立つパケットロスがない
  • XcodeとCLIツールのパスが想定バージョンを指している

保存すべき情報

  • コマンド実行時刻とノード
  • 最後の1行だけでなくコマンド全体
  • 元の出力と機密情報を削除したチケット用出力
  • 想定結果、実際の結果、再現回数
Xcodeと署名環境

まずツールチェーンを固定し、ビルドに必要な素材を取り込む

環境の一貫性は、旧マシンのユーザーディレクトリ全体をコピーすることではなく、明確なバージョンと再現可能な手順から生まれます。署名素材は必要最小限だけ取り込み、利用期間終了前に削除してください。

確認項目 操作 完了基準
Xcodeバージョン

実行 xcodebuild -version、メジャーバージョンとビルド番号を記録します。プロジェクトでバージョンを固定している場合は、要件をリポジトリ文書に記載します。

バージョンがプロジェクト要件と一致
CLIツール

実行 xcode-select -p、必要に応じてチーム承認済みのパスに切り替えます。作業途中で一時的にアップグレードしないでください。

パスが対象Xcodeを指している
証明書の取り込み

現在のプロジェクトに必要な証明書だけを、管理された転送方法で取り込み、キーチェーンへのアクセス範囲を制限します。

対象の署名IDを確認できる
プロビジョニングプロファイル

アプリID、チーム情報、機能、有効状態を確認し、他プロジェクトの古いファイルを混在させないでください。

アーカイブ対象がプロジェクト設定と一致
キーチェーンのロック解除

ビルドスクリプトでは必要最小限の時間だけロックを解除し、終了後に再ロックします。パスフレーズをリポジトリや通常ログに書き込まないでください。

非対話ビルドで必要項目を読み取れる
ビルド前の検証

依存関係の解決、プロジェクト一覧、署名設定を確認してから完全アーカイブを開始します。

正式ビルド前に失敗を検出
移行の進め方

データ、ツールチェーン、実行環境の3段階に分けて移行

一度に変更する変数を1つにし、ロールバックポイントを残します。ビルド差異が出たとき、原因がデータ、依存環境、CI登録のどれかを特定できます。

引き継ぎ 01

データ同期

入力
ソースコード、必要なリソース、依存関係ロックファイル、ビルドスクリプト
操作
まずバージョン管理リポジトリから取得し、大容量ファイルは個別に検証します。不要なキャッシュや古い成果物はコピーしません。
検証
コミット、ファイル数、チェックサムが想定どおりで、機密ファイルがリポジトリに含まれていない
よくある失敗
除外ルールによるファイル漏れ、大文字・小文字のパス差異、改行コードの変更、権限ビットの欠落
ロールバックポイント
クリーンな作業ディレクトリを残し、今回同期した内容を削除して再取得できる状態にする
引き継ぎ 02

ツールチェーンの再現

入力
Xcode要件、依存関係一覧、パッケージ管理ロックファイル、スクリプト実行環境のバージョン
操作
文書に従って最小限のツールセットをインストールし、バージョンを固定します。パスと環境変数をタスク設定に明示します。
検証
依存関係の解決に成功し、同じコミットがローカルコマンドと自動化スクリプトで一致する結果になる
よくある失敗
暗黙のグローバル依存、デフォルトRubyの差異、Xcodeパスの誤り、キャッシュ汚染
ロールバックポイント
バージョン一覧とインストールログを保存し、ツールキャッシュを消去して再現できる状態にする
引き継ぎ 03

CI連携

入力
ランナー登録情報、キュータグ、作業ディレクトリ、キャッシュルール、同時実行上限
操作
1台のランナーを登録し、まず読み取り専用チェックを実行してから、実際のリポジトリで完全なパイプラインを実行します。
検証
タスクが正しくスケジュールされ、終了コード、ログ、テスト結果、成果物を追跡できる
よくある失敗
タグ不一致、作業ディレクトリの再利用、広すぎるキャッシュキー、複数タスクによる同一リソースの奪い合い
ロールバックポイント
ランナーの登録を解除して手動ビルドに戻し、検証済みのデータとツールチェーンには影響を与えない
CI/CD連携

ランナーを登録できても、パイプラインの信頼性が確立したとは限らない

登録後、コールドキャッシュ、ウォームキャッシュ、失敗後の再試行を各1回以上検証します。作業ディレクトリ、キャッシュ、同時実行方針はパイプラインで明示的に管理してください。

代表的なCIランナーの接続チェック
プラットフォーム 登録確認 作業ディレクトリ キャッシュ戦略 同時実行の推奨
GitHub Actions セルフホストRunnerのタグと対象リポジトリまたは組織の範囲を確認 各タスクで独立したワークスペースを使用し、終了後に一時ファイルを削除 キャッシュキーにロックファイルの要約、Xcode、アーキテクチャ情報を含める まず単一タスクで検証し、メモリとディスクの負荷に応じて同時実行数を増やす
GitLab CI Runnerタグ、保護ブランチの権限、ランナーの状態を確認 複数プロジェクトで書き込み可能なディレクトリや同名成果物パスを共有しない プロジェクト、ブランチ、依存関係の要約でキャッシュ範囲を分ける アーカイブ、テスト、軽量チェックに異なるキューを設定
Jenkins ノードタグ、リモートルート、認証情報のスコープを確認 パイプライン終了後にworkspaceを削除し、必要なログは残す 依存キャッシュとビルド成果物を分けて管理 同じデバイスで重いアーカイブを同時に実行しない
自前Runner サービスの起動方式、実行ユーザー、タスク取得条件を記録 タスクIDごとにディレクトリを作成し、終了時に確実に削除 キャッシュの所有者、容量上限、無効化条件を明確化 キューでリソースを制御し、スクリプトの偶発的なロック取得に頼らない

登録完了

ランナーがオンラインで、タグが一致し、実行ユーザーが正しく、許可されたリポジトリと認証情報だけを読み取れる

タスクを再現可能

同じコミットがコールド・ウォームキャッシュの両方で同じ成果物になり、失敗時に明確な終了コードが残る

ディレクトリを回収可能

一時署名ファイル、派生データ、ビルド中間物に確実な削除ルールがあり、手作業に依存しない

同時実行に上限を設定

CPU、メモリ、SSDの負荷に応じてキューを設定し、複数のアーカイブタスクがリソースを奪い合わないようにする

性能診断

まずボトルネックの層を特定してからパラメータを調整

性能問題では、発生時刻、ノード、タスクのコミット、再現手順、比較結果を最低限記録します。「遅い」だけでは、リソース負荷、ネットワーク経路、GUIセッションの問題を区別できません。

CPU

継続的な計算か短時間のピークかを確認

高負荷プロセス、スレッド数、タスク段階を記録します。単一タスクと同時実行タスクを比較し、重複ビルド、制御不能なテスト、バックグラウンドインデックスを確認します。

プロセスサンプリング
メモリ

メモリ圧力とスワップ動作を確認

ピークメモリ、圧縮メモリ、スワップの変化を記録します。同時実行時だけ失敗する場合は、すぐネットワークのせいにせず、まず同時実行数を下げて比較します。

負荷比較
SSD

容量不足とランダムI/Oの混雑を区別

空き容量、派生データ、依存キャッシュ、過去の成果物を確認します。削除前にディレクトリ容量を記録し、証拠を失わないようにします。

容量とI/O
ネットワーク

遅延、ジッター、パケットロス、スループットを比較

固定したローカルネットワークで連続テストし、予備ネットワークと比較します。リポジトリの取得が遅い場合は、ノード経路と依存サービスの応答も切り分けます。

連続サンプリング
GUIセッション

画面のカクつきはビルドプロセスの低速化を意味しない

解像度と色品質を下げて再テストし、同時にCLIでタスクが継続しているか確認します。再接続後の前面・バックグラウンド状態を記録します。

セッション分離
セキュリティと終了

初回ログインから最終引き継ぎを準備

認証情報、署名素材、ビルド成果物、キャッシュには明確な所有者を設定します。利用期間終了前に、エクスポート、検証、削除、再確認を順に行い、記憶頼みで後回しにしないでください。

継続運用

認証情報と権限

  • 初回接続後に仮認証情報を更新
  • リポジトリとタスクごとに最小権限を設定
  • ランナーと自動化用キーのスコープを定期確認
  • スクリプト、リポジトリ、通常ログにパスフレーズを書き込まない
エクスポート前

成果物とデータ

  • アーカイブ、テストレポート、必要なログをエクスポート
  • 保存先でファイル数とチェックサムを確認
  • リポジトリのコミットとリモートブランチが同期済みか確認
  • 保持が必要なビルドベースラインを記録
利用期間終了前

環境のクリーンアップ

  • CIランナーの登録を解除し、関連認証情報を失効
  • 証明書、プロビジョニングプロファイル、秘密鍵、リカバリコードを削除
  • 作業ディレクトリ、一時ファイル、機密キャッシュを削除
  • ダウンロード、デスクトップ、コマンド履歴を再確認
サポートへの問い合わせ

初回から再現可能な条件をそろえてチケットを送信

既存の注文に関する問題は、コンソールにログインしてチケットを送信してください。ログインできない場合は、次のメールアドレスに送信できます: support@deploymac.com。送信前にパスワード、秘密鍵、証明書パスフレーズ、その他の機密認証情報を必ず削除してください。

障害記録テンプレート 項目をコピーし、機密情報はコピーしない
注文ID

コンソールで注文を特定できるIDを記入

ノード

シンガポール、日本・東京、韓国・ソウル、香港、米国東部

発生時刻

タイムゾーンを明記し、初回発生時刻と直近の再現時刻を記載

デバイス構成

ベーシックまたはハイエンド、および追加ストレージの情報

再現手順

クリーンな状態から開始し、実際の実行順に項目ごとに記載

コマンド出力

完全なコマンド、終了コード、機密情報を削除した出力を添付し、スクリーンショットだけにしない

想定結果

正常時に表示される状態、ファイル、戻り値を説明

実際の結果

差異、再現回数、すべてのタスクへの影響有無を説明

試行した操作

再試行、再接続、同時実行数の削減、キャッシュ削除などの操作と結果を列挙

未注文またはログインできない場合

メールに用途、対象ノード、予定利用期間、問題の影響範囲を記載してください。パスワード、秘密鍵、証明書パスフレーズは送信しないでください。

サポートメールを送信
次のステップ

タスク負荷に応じて構成を選び、初回接続を開始

ベーシックは軽量ビルドと日常開発に、ハイエンドは大容量メモリの実験、複数プロジェクトの同時実行、より重いビルドに適しています。どちらも専用物理マシンであり、仮想マシンではありません。