Xcode 27 Mac構成は、まずApple Siliconと対応するmacOSを満たすノードだけに絞り、その後に実際の並列ビルド、Simulator、メモリ、ストレージ、復旧性を測定して決めるのが適切です。負荷を予測できない場合は、いきなり長期構成を固定せず、調整可能なリモートMacで同じプロジェクトを検証してから契約や増設を判断します。2026年8月12日時点では、Xcode 27はベータ段階です。
開発者、CI/CDを管理するエンジニア、Macのビルドノードを購入またはレンタルする責任者が対象です。既存のMacでインストールできるかだけでなく、継続的なビルドに耐えられるかを確認したい場合に役立ちます。
01互換性の硬い条件
Xcode 27に最低限必要なMacは?
AppleのXcode 27 Beta Release Notesでは、Xcode 27はApple Silicon Macにのみインストールおよび実行でき、macOS Tahoe 26.4以降が必要とされています。Appleのシステム要件ページでも、Xcode 27 beta 4の対応macOSはmacOS Tahoe 26.4以降と記載されています。
Xcode 27 Beta Release Notes
Xcodeのシステム要件
ここで区別すべきなのは、次の3段階です。
- インストール可能:Apple Siliconと対応macOSを満たしている。
- プロジェクトをビルド可能:必要なSDK、依存関係、署名設定、Simulator Runtimeが揃っている。
- CIノードとして適切:連続ジョブ、並列テスト、キャッシュ、再起動後の復旧まで安定して処理できる。
Xcode 27 beta 4にはiOS 27、tvOS 27、watchOS 27、visionOS 27、macOS 27向けSDKが含まれ、Swift 6.4が使われます。ただし、これは処理速度や必要メモリを保証する数値ではありません。対応表を見てインストールできた時点で選定を終えると、実際のCIキューで別の問題が発生します。
02負荷別のノード分類
Xcode 27 Mac構成を考える際、チップ名だけを比較しても判断は不十分です。単一プロジェクトの増分ビルド、クリーンビルド、アーカイブ、複数ジョブの同時実行では、CPUの使われ方も待ち時間も変わります。
まず、対象プロジェクトの処理を次のように分けます。
- 増分ビルド:開発中の短い変更を確認する負荷。
- クリーンビルド:依存関係やコンパイラーの処理量を確認する負荷。
- Archive:配布用成果物を作る負荷。
- 並列テスト:複数のテストプロセスとSimulatorを同時に動かす負荷。
- 複数リポジトリのキュー:CI/CD運用でノードが継続的に受ける負荷。
比較時は、同じコミット、同じXcode 27のビルド、同じ依存関係、同じキャッシュ状態、同じxcodebuildコマンドを使います。Appleの公式資料では、xcodebuild、simctl、devicectlなどがXcodeのコマンドラインツールとして提供されています。
Xcodeのコマンドラインツール一覧
構成判断の比較表
| 利用形態 | 主な負荷 | 優先する指標 | 選定時の判断 |
|---|---|---|---|
| 開発用ノード | インデックス、増分ビルド、対話操作 | メモリ圧力、応答性、リモートデスクトップ | CPUだけでなく操作遅延を確認します |
| 単一CIノード | Archive、単一テスト | wall time、キャッシュ命中、I/O待ち | 1ジョブの完了時間を基準にします |
| 並列CIノード | 複数Archive、並列テスト | CPU使用率、メモリ圧力、キュー待ち | 同時実行時に交換活動が増えないか確認します |
| Simulator検証ノード | 複数のiOS Simulator、UIテスト | Simulator数、起動時間、メモリ、復旧 | 台数だけでなくテストプロセス数も固定します |
| 常駐ビルドノード | 24時間のジョブ処理、定時処理 | SSH、再起動復旧、ディスク残量 | 無人運用を前提にログと監視を残します |
03メモリとSimulatorの検証
Xcode 27のビルドサーバーに必要なメモリは?
一律の最低容量を決めるより、Xcodeのインデックス、Swiftコンパイル、テストプロセス、Simulator、コード支援ツールが同時に動いたときのメモリ圧力を確認する方が正確です。AppleのSimulatorはMac上で動作しますが、物理デバイスの性能や固有機能を完全には再現しません。
Simulatorと実機でアプリを実行する公式ガイド
次の証拠を1回の結果ではなく、複数ジョブで確認します。
- メモリプレッシャーが継続して高くならないか。
- スワップ使用量が増え続けていないか。
- テストプロセスやSimulatorが終了していないか。
- インデックス中にSSHやリモートデスクトップの応答が極端に遅くならないか。
- 同時実行数を増やしたとき、wall timeが短くなるのか、逆に待ち時間が増えるのか。
複数のiOS Simulatorを動かす構成は?
Simulatorを複数起動する場合は、対象OS、端末モデル、テストプロセス数、起動タイミングをテスト条件として固定します。2台を起動できても、同時テストでメモリ圧力が高まり、ジョブが不安定になるなら、CIノードとしては「対応可能」と判定できません。
インタラクティブなデバッグでは、Simulatorの操作性とリモートデスクトップの描画遅延も確認します。一方、UIテストだけを無人実行するノードでは、画面の見やすさよりもxcodebuild testの終了コード、ログ、失敗後の再実行条件を優先します。
04ストレージとキャッシュの確認
Xcode本体だけでなく、SDK、Simulator Runtime、DerivedData、Swift Package Managerの依存関係、CocoaPodsなどのキャッシュ、Archiveとログが同じストレージを使います。空き容量が減ると、CPU不足に見えるビルド遅延やI/O待ちが起こるため、処理器だけを上位に変更する前にディスク状態を確認します。
検証は次の2周に分けます。
- 冷却状態のビルド:キャッシュを削除または分離し、初回に近い処理量を測定します。
- 温存状態のビルド:通常のCI運用に近いキャッシュ状態で、同じジョブを複数回実行します。
ストレージ検証マトリクス
| 確認項目 | 記録する内容 | 合格の証拠 | 拡張を考える条件 |
|---|---|---|---|
| DerivedData | ジョブ前後の使用量 | 世代管理後も安定する | ジョブのたびに増え続ける |
| Simulator Runtime | 使用するRuntimeと残容量 | 必要なRuntimeを維持できる | 不要なRuntime削除が頻繁に必要 |
| 依存関係キャッシュ | 命中・再取得の有無 | 同一条件で再現する | ネットワーク取得が毎回発生する |
| Archiveとログ | 保持期間と保存先 | CI成果物を確実に回収できる | ログ保存で作業領域が圧迫される |
| I/O待ち | ビルド中のディスク待機 | 冷却・温存で原因を説明できる | CPU変更後も時間が改善しない |
容量に関する固定値はプロジェクトごとに異なるため、実測なしで「何GBあれば十分」と断定しない方が安全です。空き容量、キャッシュ削除の頻度、Archive保持期間をセットで管理し、容量不足を検知する監視を先に用意します。
05リモート運用の受け入れ条件
遠隔Mac構築ノードでは、ローカルのベンチマークだけでは不十分です。SSH接続、リモートデスクトップ、断線後のジョブ継続、再起動後のサービス復旧、署名情報の扱いを別々に試験します。
5段階の実装手順
-
互換性を固定します
sw_vers、uname -m、Xcodeのバージョン、使用するSDK、Simulator Runtimeを記録します。Appleの公式システム要件が更新された場合は、同じ記録を再確認します。 -
基準コミットを作ります
依存関係のロックファイル、ビルド設定、署名方式、環境変数を固定し、候補ノードで同一の成果物を作れるようにします。 -
冷却・温存の2条件で測定します
増分ビルド、クリーンビルド、Archive、テストを実行し、wall time、CPU利用率、メモリプレッシャー、スワップ、空き容量を保存します。 -
並列数を段階的に増やします
1ジョブから始め、実運用で想定する同時実行数まで増やします。キュー待ち時間が増えた時点、または失敗・強制終了が発生した時点を拡張トリガーとして記録します。 -
切断と再起動を試験します
SSHを切断してもジョブが保持されるか、ホスト再起動後にRunnerやビルドサービスが戻るか、失敗ジョブのログを回収できるかを確認します。復旧手順を手作業だけに依存させないことが重要です。
06実測結果による契約判断
判定は「速い」「遅い」ではなく、互換性、ビルド時間、同時実行時の安定性、メモリ圧力、ストレージ余量、復旧結果を並べて行います。Xcode 27のベータ段階では、新しいベータ版や正式版が公開された際に、対応macOSや既知の問題を再確認する必要があります。
Xcodeのリリースノート一覧
| 判定 | 条件 | 次の対応 |
|---|---|---|
| 採用 | 互換性を満たし、想定並列数で失敗せず、復旧手順も確認できた | 短期運用後に長期化を判断します |
| 拡張検討 | ビルドは完了するが、キュー待ち、メモリ圧力、I/O待ちが増える | 同時実行数を下げるか、上位構成を再測定します |
| 不適合 | Apple Siliconまたは対応macOSを満たさない、または復旧できない | 構成変更ではなく候補ノードを入れ替えます |
Xcode 27 Mac構成をまだ決められない場合は、ZUKCLOUDのリモートMac環境を短期間利用し、実際のリポジトリ、依存関係、Archive、Simulatorテストを同じ条件で再現する方法が現実的です。料金や利用期間を比較するときは、ZUKCLOUDの料金案内だけでなく、測定したジョブ数とキュー待ち時間も合わせて記録します。
自前のMac miniサーバーや既存のLinux CIは、長期の固定負荷、物理デバイス接続、社内ネットワーク要件では有利です。しかし、macOSの更新管理、Apple Siliconへの移行、故障時の交換、空き容量の監視をチーム側で負担する必要があり、短期の検証やリリース前の一時的な並列増強には向きません。実測を残してから長期構成を決めたい場合は、まず日本向けのZUKCLOUD利用手順で遠隔ノードを用意し、合格した負荷だけを長期運用へ移すのが無駄の少ない進め方です。