ホーム / ブログ / CI/CD
ENGINEERING BLOG · 2026.08.12

Xcode 27 Mac構成:2026年のノード選定

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の使われ方も待ち時間も変わります。

まず、対象プロジェクトの処理を次のように分けます。

  1. 増分ビルド:開発中の短い変更を確認する負荷。
  2. クリーンビルド:依存関係やコンパイラーの処理量を確認する負荷。
  3. Archive:配布用成果物を作る負荷。
  4. 並列テスト:複数のテストプロセスとSimulatorを同時に動かす負荷。
  5. 複数リポジトリのキュー:CI/CD運用でノードが継続的に受ける負荷。

比較時は、同じコミット、同じXcode 27のビルド、同じ依存関係、同じキャッシュ状態、同じxcodebuildコマンドを使います。Appleの公式資料では、xcodebuildsimctldevicectlなどがXcodeのコマンドラインツールとして提供されています。
Xcodeのコマンドラインツール一覧

構成判断の比較表

利用形態 主な負荷 優先する指標 選定時の判断
開発用ノード インデックス、増分ビルド、対話操作 メモリ圧力、応答性、リモートデスクトップ CPUだけでなく操作遅延を確認します
単一CIノード Archive、単一テスト wall time、キャッシュ命中、I/O待ち 1ジョブの完了時間を基準にします
並列CIノード 複数Archive、並列テスト CPU使用率、メモリ圧力、キュー待ち 同時実行時に交換活動が増えないか確認します
Simulator検証ノード 複数のiOS Simulator、UIテスト Simulator数、起動時間、メモリ、復旧 台数だけでなくテストプロセス数も固定します
常駐ビルドノード 24時間のジョブ処理、定時処理 SSH、再起動復旧、ディスク残量 無人運用を前提にログと監視を残します

03

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段階の実装手順

  1. 互換性を固定します
    sw_versuname -m、Xcodeのバージョン、使用するSDK、Simulator Runtimeを記録します。Appleの公式システム要件が更新された場合は、同じ記録を再確認します。

  2. 基準コミットを作ります
    依存関係のロックファイル、ビルド設定、署名方式、環境変数を固定し、候補ノードで同一の成果物を作れるようにします。

  3. 冷却・温存の2条件で測定します
    増分ビルド、クリーンビルド、Archive、テストを実行し、wall time、CPU利用率、メモリプレッシャー、スワップ、空き容量を保存します。

  4. 並列数を段階的に増やします
    1ジョブから始め、実運用で想定する同時実行数まで増やします。キュー待ち時間が増えた時点、または失敗・強制終了が発生した時点を拡張トリガーとして記録します。

  5. 切断と再起動を試験します
    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利用手順で遠隔ノードを用意し、合格した負荷だけを長期運用へ移すのが無駄の少ない進め方です。