← 開発日記に戻る

Xcodeのもたつきを卒業:ビルドをクラウド Mac mini M4へ

現場メモ · 2026.06.02 · 約8分

軽量Macで編集、クラウドMac mini M4で重いXcodeビルド

普段は 16GB の MacBook Air で iOS を触っています。Swift の編集は快適ですが、⌘B でフルビルドするとすぐファンが上がり、SourceKit とコンパイラが同じ SSD を奪い合い、カーソルが半秒止まる——この状態ではもうコードが書けません。MacBook Pro を買えば楽ですが、本当に欲しいのは ビルドが手元の唯一のマシンを占有しないこと です。

いろいろ試した末、続いている構成は単純です。軽量 Mac で編集と Gitクラウドの Mac mini M4 で xcodebuild だけ。Xcode 全体を VNC で一日動かすのはやめました(太平洋横断だとローカルよりつらい)。リモートは常時オンのビルド専用機です。

ローカル軽量Mac 編集 · Git · 軽いプレビュー VS Code / Xcode編集 diff · commit · push 静音 · バッテリー git / ssh クラウド Mac mini M4 xcodebuild · テスト · Archive Derived Dataキャッシュ 署名 · 公証 · CI 24/7 · メモリ帯域 重いビルドはクラウド、編集は手元で
手元は編集とGit。Clean Build・テスト・ArchiveはクラウドM4

まず切り分け:ビルドか、インデックスか

アクティビティモニタで swift-frontendXCBBuildService が CPU を食っているならビルドが犯人。SourceKitService だけが常に高いなら、リモートビルドは効きません。Derived Data の肥大や build/ のコミット漏れを先に疑ってください。私は 40GB の古い Derived Data を消したらローカルの増分ビルドが戻りました。リモート化は「重い処理をノートから追い出す」話で、万能薬ではありません。

役割分担

  • ローカル: 編集、git commit、MR の diff、たまに Preview。フル ⌘U はしない。
  • クラウド M4: build / test / archive。証明書と match はこの Keychain だけ。
  • 実機: 手元ならローカル接続。それ以外はビルド機。日常のデバッグで VNC はほぼ使わない。

動くまでの手順

1. Xcode バージョン一致。 クラウドが 15・手元が 16 だと Swift で即死、経験済みです。

2. 同期は Git のみ。 ビルド機で git clone。ディレクトリごと rsync しない。

3. Derived Data はリモート固定。 -derivedDataPath ~/Cache/DerivedData。ノートの Derived Data を上げない(Building your app)。

4. Makefile で SSH ビルド。

Makefile(抜粋)
build-remote:
	git push origin HEAD
	ssh $(REMOTE) 'cd ~/workspace/$(REPO) && git pull --ff-only && 	  xcodebuild -scheme $(SCHEME) -derivedDataPath ~/Cache/DerivedData build'

CLI は TN2339

VNC を開くのはこのときだけ

p12 インポート、Keychain の許可、GUI 専用の Archive チェック。終わったら切断。Swift を VNC で書くのはコスパ最悪です。

3人以上なら同じ M4 を CI に

GitHub self-hosted runner(公式)に載せ、昼は SSH、夜は同じ Derived Data。詳細は runner 構築メモ

ハマった点

  • Derived Data の rsync → 両方のインデックスが壊れた。
  • Package.resolved 未コミット → リモートだけ依存がズレる。
  • VNC 常時開発 → UI 作業が特につらい。
  • 512GB 逼迫 → 長期ディスク を参照。

スペック(ビルドだけ)

M4 / 24GB / 512GB。ASC API や社内 proxy には固定 IP(1 機 1 IP)。

他の選択肢

MBP 14、Xcode Cloud、ハックintosh VM——それぞれトレードオフあり。Windows のみなら Windows + クラウド Mac。APAC→カナダ Release は 公証・Release

よくある質問

ローカル Run・リモート compile? 公式には無理。VNC か build-for-testing + .xcresult

太平洋 SSH の RTT? ビルド本体はリモート。ログ待ちなら 200ms 程度は許容。

ビルド機の置き場所

自分のビルド機は Hashvps の Mac mini M4。SSHが主、KeychainだけVNC。24/7で回すなら プラン を見てください。

Hashvps

専用ビルドMacが必要?

ベアメタル macOS、SSH/VNC、xcodebuild用のサブ機。

プランを見る
限定オファー