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

クラウドMacをXcodeビルドフローに接続する

このガイドでは、構成選び、注文、接続、環境初期化、初回archive、CI runnerの接続を解説します。順番に進め、まず再現可能なリリースフローを確立してから、並列実行とキャッシュを追加しましょう。

3プラン
固定構成
4か所
提供中のリージョン
$20.7/日
最低料金
BUILD RUN SHEET 初回iOSアーカイブ
実行準備
コードリポジトリ 専用ノード アーカイブ成果物
  1. 01
    プランとノードを確認構成、期間、都市、ストレージ拡張を一致させる
  2. 02
    Xcode環境を初期化バージョン、コマンドラインツール、Git、依存関係マネージャーを確認
  3. 03
    初回archiveを実行scheme、署名設定、書き出しパラメータを固定
  4. 04
    CI runnerを登録作業ディレクトリを分離し、ビルド後のクリーンアップルールを設定
SG シンガポール JP 東京 KR ソウル HK 香港
物理ノード 1注文につき1台の専用ホスト
ステップ01

開始前に5つの入力項目を確定

納品速度を左右するのはツールの数ではなく、アカウント権限、リポジトリ権限、Xcodeバージョン、ノード、利用期間を注文前に確定できているかです。

開発者権限

対象チーム、証明書、プロビジョニングプロファイル、リリースに必要な権限をApple Developerアカウントで確認します。archive完了後まで署名アクセスの範囲を確認しないのは避けてください。

リポジトリへのアクセス

最小権限のデプロイ資格情報を用意し、メインリポジトリ、プライベート依存関係、サブモジュール、大容量ファイルストレージを読み取れることを確認します。CI専用資格情報を個人用の長期資格情報と共用しないでください。

Xcodeバージョン

プロジェクト要件をメジャーバージョンとビルドバージョンまで明確にし、Swift、SDK、コマンドラインツールの互換性を確認します。runnerのバージョンは固定し、一時的な切り替えに依存しないでください。

ノードの場所

シンガポール、東京、ソウル、香港から、主な開発者、コードリポジトリ、依存関係の取得元に近いノードを優先し、実際の接続環境で検証します。

利用期間

一時的な署名検証は日単位または週単位から、継続開発や固定runnerには月単位または四半期単位が適しています。実際のビルド計画に基づいて選び、想定だけの稼働率で見積もらないでください。

ステップ02

プロジェクト名ではなく負荷で構成を選ぶ

3プランすべてApple Siliconの専用物理マシンで、仮想マシンではありません。並列タスク数、依存関係の規模、キャッシュ容量、ユニファイドメモリの必要量を重視して選びます。

軽量ビルド

Go M4 Core

単一プロジェクトの検証、一時的な署名、低並列のXcodeビルド、専用環境が必要な短期タスクに適しています。

チップ
M4
メモリ
16GB
ストレージ
256GB
Go M4 Coreを選ぶ
高メモリ負荷

Go M4 Pro

高並列ビルド、大規模な依存関係キャッシュ、ユニファイドメモリとローカルストレージを多く必要とするAI推論実験に適しています。

チップ
M4 Pro
メモリ
64GB
ストレージ
2TB
Go M4 Proを選ぶ
ステップ03

注文時に4つのパラメータをまとめて確認

コンフィギュレーターでは、ホスト、期間、ノード、追加オプションを1つの注文にまとめます。送信前に各行を確認し、環境構築後のデータ移行を避けてください。

注文パラメータチェックリスト 送信前に確認
HOST
3つのメイン構成から1つを選択

チップ、メモリ、システムディスクの仕様は構成カードに従います。

TERM
日、週、月、四半期から選択

追加オプションの期間はホストの期間と一致させてください。

NODE
提供中の4ノードから1つを選択

シンガポール、東京、ソウル、香港はすべてコンフィギュレーターで選択できます。

ADD
タスクに応じて拡張を追加

+1TB SSD、+2TB SSD、またはThunderbolt 5の各マシンへの並列接続を選択できます。

ノード選択

主なワークフローに近い場所を優先

リモートデスクトップの体感は開発者からノードまでの経路に大きく左右されます。依存関係の取得速度はリポジトリやダウンロード元の場所にも影響されます。候補ノードを選び、実プロジェクトでテストしましょう。

ノードの詳細を見る
可用性について

コンソールのリアルタイム表示を基準にする

カタログ内のすべての組み合わせで注文を開始できますが、注文作成時の実際の可用性はコンソールにリアルタイムで表示されます。ページのスクリーンショットから現在の状態を判断しないでください。

注文の構成を始める
ステップ04

まずGUIで受け入れ確認し、自動化へ進む

納品情報を受け取ったら、まずVNCでデスクトップ、キーボード、ネットワーク、システム状態を確認します。基本環境が正常であることを確認してから、SSHでスクリプトとrunnerタスクを実行します。

接続01

VNCでデスクトップを確認

解像度、キーボードレイアウト、クリップボード、タイムゾーン、ネットワークアクセスを確認します。初回確認時に多数のシステム設定を同時に変更せず、問題発生時の切り分けを容易にします。

  • ノードアドレスと接続時刻を記録
  • デスクトップセッションを継続利用できることを確認
  • 基本的なダウンロードとリポジトリへのアクセスを確認
接続02

SSHで反復タスクを引き継ぐ

コード取得、依存関係のインストール、キャッシュ削除、ビルド実行を再利用可能なスクリプトにします。資格情報は最小権限を使用し、ログやビルド成果物とは分けて保存してください。

  • キーがアクセスできるプロジェクト範囲を制限
  • スクリプトの入口と作業ディレクトリを固定
  • 失敗したコマンドの終了コードとログを保持
ステップ05

開発環境を再現可能な状態に初期化

まずシステムとXcodeを検証し、その後プロジェクトツールをインストールします。各手順でバージョン出力を残すと、runnerで環境差分がコードによるものかホストによるものか判断できます。

環境チェックコマンド ENV-CHECK
$ sw_vers macOSバージョンを確認
$ xcodebuild -version Xcodeとビルドバージョンを確認
$ xcode-select -p コマンドラインツールのパスを確認
$ git --version Gitが使用可能か確認
$ fastlane --version 自動化ツールのバージョンを確認
  1. 01

    システムアカウントを確認

    現在のユーザー、ホームディレクトリ、管理者権限、ディスクのマウント先を確認します。プロジェクトディレクトリをデスクトップや一時ダウンロードフォルダに分散させないでください。

  2. 02

    Xcodeを初回起動

    対象のXcodeを開き、必要なコンポーネントをインストールして、コマンドラインツールが同じバージョンを指していることを確認します。

  3. 03

    プロジェクトの依存関係をインストール

    プロジェクトのロックファイルに従ってパッケージマネージャーと依存関係をインストールし、初回ビルドで固定バージョンを不用意に更新しないでください。

  4. 04

    Fastlaneとスクリプトの入口を固定

    プロジェクト内のバージョン制約を使用し、ビルド、テスト、アーカイブ、配布を個別に再実行できるタスクへ分割します。

ステップ06

初回Xcodeクラウドビルドでは主要フローだけを検証

初回の目的は最速化ではなく、クリーンなディレクトリから検証可能な成果物を得ることです。リポジトリのバージョン、scheme、署名、書き出し方法を固定し、キャッシュの最適化はその後に行います。

01

確定したバージョンを取得

明確なブランチ、タグ、またはコミット番号を使用します。サブモジュールと依存関係のロックファイルを同期し、今回のビルドに対応するコミットを記録します。

02

schemeを確認

まず xcodebuild -list で利用可能なschemeを確認し、対象schemeが共有済みでコマンドラインビルドに適していることを確認します。

03

署名素材を確認

証明書、プロビジョニングプロファイル、Bundle Identifier、チーム権限を確認します。署名パスワードをリポジトリや通常のビルドログに記録してはいけません。

04

archiveを実行

workspaceまたはproject、scheme、configuration、アーカイブ先を明確にし、失敗時は完全な終了コードとログを保持します。

05

書き出し成果物を検証

成果物名、バージョン番号、ビルド番号、署名結果、ファイルサイズを確認し、TestFlight配布フローで受け付けられることを確認します。

成功基準 同じコミットから同じコマンドで有効なアーカイブを再生成できる
後回しにする項目 並列実行、キャッシュヒット率、インクリメンタルビルド速度
ステップ07

self-hosted runnerで制御可能なビルドを実現

初回archiveが成功してからrunnerを登録します。重要なのは「オンライン」ではなく、作業ディレクトリの分離、明確なラベル、制限されたプロジェクト権限、各タスク後に復元できる状態です。

作業ディレクトリ

各runnerに専用パスを割り当てる

ソースコード、DerivedData、依存関係キャッシュ、書き出し成果物を別ディレクトリで管理します。複数の並列タスクから同じアーカイブ先へ書き込ませないでください。

ラベル設計

一時タスクではなく能力を示すラベルにする

ラベルにはリージョン、Xcodeメジャーバージョン、負荷レベルを設定できます。プロジェクト名、担当者名、短期ブランチを長期ラベルに含めないでください。

アクセス範囲

実行に必要なプロジェクトだけを許可

runnerが読み取れるリポジトリと変数の範囲を制限します。本番署名素材とテストビルド権限はワークフローごとに分けてください。

クリーンアップルール

タスク終了後に機密情報の残留物を削除

一時資格情報、書き出し設定、不要になった成果物を削除します。キャッシュはディレクトリ、容量、更新日時で管理し、一律に全削除しないでください。

ステップ08

リリース前に最終納品チェックを完了

以下の項目をチームの運用手順書に追加します。確認が完了してから、runnerで継続ビルドやTestFlight配布を実行します。

証明書とプロビジョニングプロファイル

有効期限、チーム所属、Bundle Identifier、使用範囲を確認し、更新担当者を記録します。

ディスク空き容量

ソースコード、DerivedData、依存関係キャッシュ、アーカイブ、書き出し成果物の使用量を確認し、連続ビルド用の空き容量を確保します。

キャッシュ戦略

再利用できるディレクトリ、無効化のタイミング、容量上限、削除条件を明確にし、署名パスワードや一時トークンをキャッシュしないでください。

TestFlightフロー

アーカイブの書き出しからアップロード完了までを一度通して検証し、バージョン番号、ビルド番号、リリースログが対応していることを確認します。

機密情報の削除

リポジトリ、環境ファイル、コマンド履歴、ビルドログを確認し、長期保存すべきでないキー、トークン、署名パスワードを削除します。

失敗時のエスカレーション

注文番号、ノード、再現時刻、エラーログ、実施済みの手順を記録します。サポートが必要な場合はコンソールからチケットを送信してください。

READY 初回ビルドを再現でき、runner権限が管理され、機密情報が削除されている
コンソールからチケットを送信

準備ができたら、専用ノード1台から始める

構成、期間、ノードを選び、まず初回Xcodeアーカイブを成功させてから、安定したコマンドをCIキューに接続します。