単一プロジェクトの軽量ビルド、単体テスト、低並列アーカイブに適しています。依存キャッシュは定期的に整理し、作業ディレクトリがローカルストレージを占有し続けないようにします。
ZoneMini M4 CoreをレンタルクラウドMacでコードプッシュ後のタスクを受け付ける
ZoneMiniは、仮想マシンではなく常時稼働するクラウドMac専用物理ノードを提供します。コードのプッシュを固定ノードで実行し、テストレポート、アーカイブ、モデル結果、メディア成果物を既存の納品パイプラインへ返します。
- リソース形態
- 1注文につき、選択した専用物理ノード1台
- ラインアップ
- 3構成、販売中のノード5拠点
- 接続方法
- SSH、macOS GUI、CI Runner
-
01コードプッシュ リポジトリイベント、スケジュール実行、手動トリガーをキューへ投入INPUT
-
02ビルド実行 依存関係を復元し、テスト、署名、アーカイブ生成を実行RUN
-
03成果物の納品 IPA、ログ、レポート、モデル指標、メディアファイルを返却OUTPUT
リポジトリのトリガーからIPAチェックまでを、再現可能な6段階に分ける
安定したiOSクラウドビルドは、Archiveコマンドだけでは完成しません。固定ツールチェーン、管理されたキャッシュ、制限付き署名権限、明確な成果物チェックが必要です。各段階で追跡可能なログを残せば、失敗原因が依存関係、コンパイル、署名、エクスポートのどこにあるか判断できます。
-
01
リポジトリトリガーを受信
メインブランチへのマージ、リリースタグ、手動タスクでビルドを開始します。ブランチ名、コミットハッシュ、バージョン、ビルド番号をタスクコンテキストに記録し、成果物とソースの対応を明確にします。
-
02
固定依存関係を復元
ロックファイルに従ってSwift Package、CocoaPods、JavaScript依存関係をインストールします。キャッシュはプロジェクト、ツールバージョン、ロックファイルの要約ごとに分離し、異なるブランチで誤った依存関係を共有しないようにします。
-
03
署名権限を有効化
必要な証明書とプロビジョニングプロファイルはビルド段階のみで解除し、Runnerの読み取り範囲を制限します。タスク終了後は一時アクセスを閉じ、秘密鍵、トークン、完全なパスワードをログに記録しません。
-
04
テストとアーカイブを実行
静的チェックと単体テストを先に実行し、その後Xcode Archiveを呼び出します。テスト失敗時は署名を直ちに停止し、テスト結果、コンパイラ出力、失敗ケースを保存します。
-
05
IPAをエクスポート
バージョン管理されたエクスポート設定でIPAを生成し、dSYM、アーカイブ、エクスポートログも保存します。最終インストールパッケージだけを残すと、クラッシュ解析とバージョン追跡に必要な情報が不足します。
-
06
アップロード前チェックを実行
Bundle ID、バージョン、ビルド番号、署名結果、プライバシーマニフェスト、パッケージの変更を確認します。チェック完了後に成果物をアップロードまたはリリース承認へ渡します。
3つのラインアップで3種類のビルド負荷に対応
ピークメモリ、同時実行数、1タスクの所要時間を確認してからマシンを選びます。プロジェクト名だけで判断せず、ディスクキャッシュの増加を計算需要と混同しないでください。
日常開発、複数ブランチのパイプライン、React NativeまたはFlutterのネイティブビルド、より多くの依存キャッシュを保持したいチームに適しています。
ZoneMini M4 Plusをレンタル高負荷の並列ビルド、大規模モデル推論、大容量メディア処理、長時間のバッチ処理に適しています。メモリ負荷の高いタスクは、まずこのプランで検証してください。
ZoneMini M4 Proをレンタル複数の固定Runnerを共有ワークステーションではなく、スケジュール可能なリソースとして運用する
ビルドファームの要点は、すべてのタスクを任意のマシンへ送ることではなく、ノードごとに安定した役割を定義することです。タグ、キュー、キャッシュ境界、ログ保存、リージョン割り当てを同時に設計することで、失敗を特定し容量を判断できます。
キューを所要時間と権限で分ける
プッシュ検証、リリースアーカイブ、高メモリタスクを1つの一律キューで処理しないでください。長時間タスクには専用タグを設定し、短いテストが長時間待たされるのを防ぎます。
キャッシュをプロジェクトとバージョンで分離
依存キャッシュキーには少なくともプロジェクト、ブランチ戦略、ツールバージョン、ロックファイルの要約を含めます。キャッシュのヒット異常時は、ノード全体ではなく対象プロジェクトだけを削除できるようにします。
失敗ログを一元保存
コミット識別子、Runnerタグ、Xcodeバージョン、依存関係の要約、失敗段階、匿名化済みログを保存します。ログには保存期間を設定し、アクセストークンを含めません。
リポジトリとチームに近いノードを選ぶ
シンガポール、日本(東京)、韓国(ソウル)、香港、米国東部でノードを提供しています。コードリポジトリの場所、チームのタイムゾーン、成果物の納品先を優先して選択してください。
React NativeとFlutterのボトルネックは、多くの場合ネイティブ層にある
JavaScriptやDartの開発は複数の環境で行えますが、iOS依存関係の解決、シミュレーターのテスト、署名、アーカイブにはmacOSとXcodeが必要です。固定クラウドMacなら、これらを個人PCからチームのパイプラインへ移行できます。
JavaScriptとネイティブ依存関係を分けて管理
- 依存関係の復元:ロックファイルに従ってNode.jsパッケージをインストールし、iOSディレクトリでCocoaPods依存関係を復元します。
- キャッシュの境界:パッケージマネージャー、Pods、DerivedDataのキャッシュキーを分け、作業ディレクトリ全体をキャッシュしません。
- テストの順序:まず型チェックとJavaScriptテストを実行し、その後ネイティブ単体テストまたはシミュレーター検証を行います。
- 署名付きビルド:リリースブランチで固定Schemeを呼び出し、Archive、IPA、dSYM、エクスポートログを生成します。
- 複数ブランチ戦略:機能ブランチでは検証のみ行い、署名権限は候補ブランチだけに付与して、プッシュごとのリリースパッケージ生成を避けます。
Dart段階とXcode段階を分けて記録
- 環境の確認:Flutter、Dart、CocoaPods、Xcodeのバージョンを固定し、タスク開始時にバージョン概要を出力します。
- ネイティブ依存関係:iOSプラグインの依存関係を復元し、追加のシステム権限や最低デプロイメントバージョンが必要か確認します。
- シミュレーターテスト:コンポーネントテストとiOSシミュレーターテストを分け、失敗時はテストレポートとスクリーンショットを保存します。
- 署名アーカイブ:管理された設定でiOS Archiveを生成し、エクスポートオプションと署名結果を確認します。
- ブランチ分離:安定版ブランチと実験ブランチで異なる作業ディレクトリを使い、ビルド成果物とキャッシュの上書きを防ぎます。
依存関係の宣言が変わったのにロックファイルが更新されていないと、ローカルでは成功しCIでは失敗する問題を再現しにくくなります。
プラグインを更新する前にXcode、デプロイメントターゲット、CocoaPodsの条件を確認し、固定ノードを更新します。
すべてのキャッシュは削除後に再構築できる状態にし、キャッシュを唯一の依存関係の供給元にしないでください。
高メモリノードで継続的なモデル実験を実行する
クラウドMacでは、固定されたApple Silicon環境にモデル準備、推論実行、指標記録、結果出力を集約できます。トレーニング基盤の代替ではなく、ローカル推論経路の検証、実験の一括実行、macOS対象環境でのリソース状況の確認に適しています。
ZoneMini M4 Pro
M4 Pro · 64GB · 2TB
モデルのバージョン、入手元、ファイルハッシュ、量子化方式、実行スクリプトのバージョンを記録します。大容量ファイルは完全性を確認してから実験ディレクトリへ移します。
実験ごとに独立した環境を作成し、Pythonパッケージとネイティブ依存関係を固定します。一度検証した基準環境を一時的な更新で変更しないでください。
バッチサイズ、入力長、並列数を段階的に増やし、ピークメモリ、実行時間、失敗サンプル、リトライ回数を記録します。
パラメーター、環境概要、出力ファイル、匿名化済みログをまとめて出力します。最終平均値だけでなく、異常サンプルも追跡できるようにします。
長時間のトランスコードは固定ノードで行い、成果物をアーカイブシステムへ戻す
音声・動画タスクでは、プロセッサ、メモリ、ディスクを同時に使用することが一般的です。入力同期、一時処理、品質チェック、最終返却を分け、クラウドMacの作業ディスクを長期素材保管庫にしない運用が適しています。
素材を同期してハッシュを確認
タスクリストに従ってソースファイル、字幕、音声トラック、処理パラメーターを同期します。転送後にファイルサイズまたはハッシュを確認し、不完全な素材で長時間処理を開始しないようにします。
- 入力
- ソース動画、音声トラック、字幕、パラメータ表
- 記録
- ファイルハッシュ、エンコード要件、出力名
トランスコードしてプロキシファイルを生成
解像度、エンコード形式、プロジェクトのバッチ単位でタスクを分割します。波形、プロキシ、サムネイルが必要な場合は、生成パラメーターを同じタスク記録に保存します。
- 処理
- 一括トランスコード、波形、プロキシ、サムネイル
- 分離
- バッチごとの一時ディレクトリと失敗リスト
自動チェック後に人手で抜き取り確認
まず再生時間、解像度、音声トラック数、出力ファイルの完全性を確認し、重要な区間を人手で抜き取り確認します。失敗ファイルは該当バッチだけ再実行します。
- 自動
- 再生時間、サイズ、音声トラック、ファイル完全性
- 人手
- 映像、音声、字幕、重要区間
成果物を返却して一時ディスクを整理
成果物、処理ログ、失敗リストをチーム指定のストレージへ返却します。返却完了を確認して一時ファイルを削除し、ローカルディスクの長期的な圧迫を防ぎます。
- 成果物
- 完成ファイル、ログ、失敗タスク一覧
- 境界
- 作業ディスクを長期アーカイブに使用しない
提出前チェックをパイプラインのゲートにする
アーカイブに成功しても、提出条件を満たしたとは限りません。バージョン情報、署名、プライバシーマニフェスト、アーカイブ検証、スクリーンショット、リリースノートを納品前に一つずつ確認します。ZoneMiniは実行環境を提供しますが、アプリ配信プラットフォームの審査基準に代わるものではありません。
6項目すべてに合格してから候補パッケージを納品
候補ビルドごとに、チェック結果、コミットハッシュ、バージョン、ビルド番号を保存します。問題が見つかった場合は該当段階に戻り、最終提出前に未記録の設定を一時変更しないでください。
-
01
バージョンとビルド番号
リリースブランチ、変更履歴、候補パッケージとの一致を確認し、ビルド番号の重複がないことを確認します。
-
02
署名とプロビジョニングプロファイル
Bundle ID、署名ID、権限宣言、エクスポート方式が目的に合っていることを確認します。
-
03
プライバシーマニフェスト
アプリと依存関係に含まれるプライバシー宣言を確認し、新しいSDKがチェック対象に含まれていることを確認します。
-
04
アーカイブ検証
検証出力を保存し、シンボル不足、権限不一致、サポート対象外のビルド設定に対応します。
-
05
スクリーンショットとメタデータ
対象デバイス、言語、バージョンに合わせてスクリーンショット、説明、更新内容を準備し、ファイル名を確認します。
-
06
提出前回帰テスト
候補パッケージで、起動、ログイン、主要フロー、ネットワーク障害、アップグレードの各シナリオを確認します。
クラウドMacはビルド、検証、成果物整理を継続実行できますが、アプリ内容、メタデータ、コンプライアンス要件、最終審査結果は各プラットフォームのルールによって決まります。チーム独自のリリース承認者とロールバック手順も用意してください。
キュー、権限、コラボレーション範囲でノードを組み合わせる
ノード数はチーム人数だけで決めるべきではありません。同時実行タスク数、独立した署名境界の必要性、キャッシュ共有の可否、メンバーとリポジトリの分布を確認してから、単一ノードか複数ノードかを決めます。
個人開発者
1つの固定環境で日常開発、テスト、候補パッケージのアーカイブを行います。依存関係のバージョン、署名手順、整理スクリプトをリポジトリに保存し、ローカルPCとリモート環境の差を減らします。
- 軽量な単一プロジェクトならZoneMini M4 Coreから開始
- クロスプラットフォームプロジェクトやキャッシュが多い場合はZoneMini M4 Plusを優先
- アーカイブ、ログ、保管が必要なプロジェクト資料を定期的にエクスポート
CIチーム
少なくともプッシュ検証とリリースアーカイブを分けます。タスク量の増加に応じてタグでノードを追加し、署名権限を持つRunnerに通常テストを集中させないようにします。
- 短いテストキューを優先し、長時間アーカイブは専用キューへ
- ノードキャッシュをプロジェクトごとに分離し、失敗ログを一元保存
- 高メモリまたは並列タスクをZoneMini M4 Proに割り当てる
分散チーム
シンガポール、日本(東京)、韓国(ソウル)、香港、米国東部から、コードリポジトリ、主要メンバー、納品経路に近い場所を選びます。メンバーの所在地だけで均等配分しないでください。
- リポジトリとのやり取りが多い場合は、リポジトリの地域に近い場所を優先
- GUIでの共同作業が多い場合は、主な利用メンバーの場所も考慮
- 複数ノードで同じツールチェーン一覧とログ形式を使用
ビルド、テスト、推論、メディアタスクが同時に実行されるかを洗い出します。
実際のピーク値に基づき、3つのラインアップから構成を選びます。プロジェクト名だけで推測しません。
すべての注文はUSDで決済され、USDT-TRC20とVisa / Mastercard / Amex(Stripe経由)のみ利用できます。
タスク規模に合わせてノードと構成を選ぶ
用途、同時実行タスク数、希望ノード、レンタル期間、ストレージ要件を準備します。接続方法を確認する場合はリモートアクセスガイドをご覧ください。構成の相談はチームまでお問い合わせください。