-
01
プランとノードを確認構成、期間、都市、ストレージ拡張を一致させる
-
02
Xcode環境を初期化バージョン、コマンドラインツール、Git、依存関係マネージャーを確認
-
03
初回archiveを実行scheme、署名設定、書き出しパラメータを固定
-
04
CI runnerを登録作業ディレクトリを分離し、ビルド後のクリーンアップルールを設定
クラウドMacをXcodeビルドフローに接続する
このガイドでは、構成選び、注文、接続、環境初期化、初回archive、CI runnerの接続を解説します。順番に進め、まず再現可能なリリースフローを確立してから、並列実行とキャッシュを追加しましょう。
- 3プラン
- 固定構成
- 4か所
- 提供中のリージョン
- $20.7/日
- 最低料金
開始前に5つの入力項目を確定
納品速度を左右するのはツールの数ではなく、アカウント権限、リポジトリ権限、Xcodeバージョン、ノード、利用期間を注文前に確定できているかです。
開発者権限
対象チーム、証明書、プロビジョニングプロファイル、リリースに必要な権限をApple Developerアカウントで確認します。archive完了後まで署名アクセスの範囲を確認しないのは避けてください。
リポジトリへのアクセス
最小権限のデプロイ資格情報を用意し、メインリポジトリ、プライベート依存関係、サブモジュール、大容量ファイルストレージを読み取れることを確認します。CI専用資格情報を個人用の長期資格情報と共用しないでください。
Xcodeバージョン
プロジェクト要件をメジャーバージョンとビルドバージョンまで明確にし、Swift、SDK、コマンドラインツールの互換性を確認します。runnerのバージョンは固定し、一時的な切り替えに依存しないでください。
ノードの場所
シンガポール、東京、ソウル、香港から、主な開発者、コードリポジトリ、依存関係の取得元に近いノードを優先し、実際の接続環境で検証します。
利用期間
一時的な署名検証は日単位または週単位から、継続開発や固定runnerには月単位または四半期単位が適しています。実際のビルド計画に基づいて選び、想定だけの稼働率で見積もらないでください。
プロジェクト名ではなく負荷で構成を選ぶ
3プランすべてApple Siliconの専用物理マシンで、仮想マシンではありません。並列タスク数、依存関係の規模、キャッシュ容量、ユニファイドメモリの必要量を重視して選びます。
Go M4 Core
単一プロジェクトの検証、一時的な署名、低並列のXcodeビルド、専用環境が必要な短期タスクに適しています。
- チップ
- M4
- メモリ
- 16GB
- ストレージ
- 256GB
Go M4 Plus
複数の日常プロジェクト、React NativeやFlutterの依存関係のインストール、適度な並列実行が必要なCIキューに適しています。
- チップ
- M4
- メモリ
- 24GB
- ストレージ
- 512GB
Go M4 Pro
高並列ビルド、大規模な依存関係キャッシュ、ユニファイドメモリとローカルストレージを多く必要とするAI推論実験に適しています。
- チップ
- M4 Pro
- メモリ
- 64GB
- ストレージ
- 2TB
注文時に4つのパラメータをまとめて確認
コンフィギュレーターでは、ホスト、期間、ノード、追加オプションを1つの注文にまとめます。送信前に各行を確認し、環境構築後のデータ移行を避けてください。
チップ、メモリ、システムディスクの仕様は構成カードに従います。
追加オプションの期間はホストの期間と一致させてください。
シンガポール、東京、ソウル、香港はすべてコンフィギュレーターで選択できます。
+1TB SSD、+2TB SSD、またはThunderbolt 5の各マシンへの並列接続を選択できます。
まずGUIで受け入れ確認し、自動化へ進む
納品情報を受け取ったら、まずVNCでデスクトップ、キーボード、ネットワーク、システム状態を確認します。基本環境が正常であることを確認してから、SSHでスクリプトとrunnerタスクを実行します。
VNCでデスクトップを確認
解像度、キーボードレイアウト、クリップボード、タイムゾーン、ネットワークアクセスを確認します。初回確認時に多数のシステム設定を同時に変更せず、問題発生時の切り分けを容易にします。
- ノードアドレスと接続時刻を記録
- デスクトップセッションを継続利用できることを確認
- 基本的なダウンロードとリポジトリへのアクセスを確認
SSHで反復タスクを引き継ぐ
コード取得、依存関係のインストール、キャッシュ削除、ビルド実行を再利用可能なスクリプトにします。資格情報は最小権限を使用し、ログやビルド成果物とは分けて保存してください。
- キーがアクセスできるプロジェクト範囲を制限
- スクリプトの入口と作業ディレクトリを固定
- 失敗したコマンドの終了コードとログを保持
開発環境を再現可能な状態に初期化
まずシステムとXcodeを検証し、その後プロジェクトツールをインストールします。各手順でバージョン出力を残すと、runnerで環境差分がコードによるものかホストによるものか判断できます。
sw_vers
macOSバージョンを確認
xcodebuild -version
Xcodeとビルドバージョンを確認
xcode-select -p
コマンドラインツールのパスを確認
git --version
Gitが使用可能か確認
fastlane --version
自動化ツールのバージョンを確認
-
01
システムアカウントを確認
現在のユーザー、ホームディレクトリ、管理者権限、ディスクのマウント先を確認します。プロジェクトディレクトリをデスクトップや一時ダウンロードフォルダに分散させないでください。
-
02
Xcodeを初回起動
対象のXcodeを開き、必要なコンポーネントをインストールして、コマンドラインツールが同じバージョンを指していることを確認します。
-
03
プロジェクトの依存関係をインストール
プロジェクトのロックファイルに従ってパッケージマネージャーと依存関係をインストールし、初回ビルドで固定バージョンを不用意に更新しないでください。
-
04
Fastlaneとスクリプトの入口を固定
プロジェクト内のバージョン制約を使用し、ビルド、テスト、アーカイブ、配布を個別に再実行できるタスクへ分割します。
初回Xcodeクラウドビルドでは主要フローだけを検証
初回の目的は最速化ではなく、クリーンなディレクトリから検証可能な成果物を得ることです。リポジトリのバージョン、scheme、署名、書き出し方法を固定し、キャッシュの最適化はその後に行います。
確定したバージョンを取得
明確なブランチ、タグ、またはコミット番号を使用します。サブモジュールと依存関係のロックファイルを同期し、今回のビルドに対応するコミットを記録します。
schemeを確認
まず xcodebuild -list で利用可能なschemeを確認し、対象schemeが共有済みでコマンドラインビルドに適していることを確認します。
署名素材を確認
証明書、プロビジョニングプロファイル、Bundle Identifier、チーム権限を確認します。署名パスワードをリポジトリや通常のビルドログに記録してはいけません。
archiveを実行
workspaceまたはproject、scheme、configuration、アーカイブ先を明確にし、失敗時は完全な終了コードとログを保持します。
書き出し成果物を検証
成果物名、バージョン番号、ビルド番号、署名結果、ファイルサイズを確認し、TestFlight配布フローで受け付けられることを確認します。
self-hosted runnerで制御可能なビルドを実現
初回archiveが成功してからrunnerを登録します。重要なのは「オンライン」ではなく、作業ディレクトリの分離、明確なラベル、制限されたプロジェクト権限、各タスク後に復元できる状態です。
各runnerに専用パスを割り当てる
ソースコード、DerivedData、依存関係キャッシュ、書き出し成果物を別ディレクトリで管理します。複数の並列タスクから同じアーカイブ先へ書き込ませないでください。
一時タスクではなく能力を示すラベルにする
ラベルにはリージョン、Xcodeメジャーバージョン、負荷レベルを設定できます。プロジェクト名、担当者名、短期ブランチを長期ラベルに含めないでください。
実行に必要なプロジェクトだけを許可
runnerが読み取れるリポジトリと変数の範囲を制限します。本番署名素材とテストビルド権限はワークフローごとに分けてください。
タスク終了後に機密情報の残留物を削除
一時資格情報、書き出し設定、不要になった成果物を削除します。キャッシュはディレクトリ、容量、更新日時で管理し、一律に全削除しないでください。
リリース前に最終納品チェックを完了
以下の項目をチームの運用手順書に追加します。確認が完了してから、runnerで継続ビルドやTestFlight配布を実行します。
証明書とプロビジョニングプロファイル
有効期限、チーム所属、Bundle Identifier、使用範囲を確認し、更新担当者を記録します。
ディスク空き容量
ソースコード、DerivedData、依存関係キャッシュ、アーカイブ、書き出し成果物の使用量を確認し、連続ビルド用の空き容量を確保します。
キャッシュ戦略
再利用できるディレクトリ、無効化のタイミング、容量上限、削除条件を明確にし、署名パスワードや一時トークンをキャッシュしないでください。
TestFlightフロー
アーカイブの書き出しからアップロード完了までを一度通して検証し、バージョン番号、ビルド番号、リリースログが対応していることを確認します。
機密情報の削除
リポジトリ、環境ファイル、コマンド履歴、ビルドログを確認し、長期保存すべきでないキー、トークン、署名パスワードを削除します。
失敗時のエスカレーション
注文番号、ノード、再現時刻、エラーログ、実施済みの手順を記録します。サポートが必要な場合はコンソールからチケットを送信してください。
準備ができたら、専用ノード1台から始める
構成、期間、ノードを選び、まず初回Xcodeアーカイブを成功させてから、安定したコマンドをCIキューに接続します。