평소 16GB MacBook Air로 iOS를 만듭니다. Swift 편집은 괜찮은데 ⌘B 전체 빌드만 누르면 팬이 치고 SourceKit과 컴파일러가 디스크를 두고 싸웁니다. 커서가 반초 멈출 때는 사실 코딩이 안 됩니다. 맥북 프로를 사는 것보다 빌드가 내 유일한 노트북을 잡아먹지 않게 하는 게 먼저였습니다.
결국 남은 조합은 단순합니다. 울트라북은 코드 수정·Git, 클라우드 Mac mini M4는 xcodebuild 전용. VNC로 Xcode 하루 종일 쓰는 건 포기했습니다(태평양 횡단이면 로컬보다 더 답답함). 원격은 항상 켜 둔 빌드 머신입니다.
먼저 구분: 빌드인가, 인덱서인가
swift-frontend, XCBBuildService가 CPU를 먹으면 빌드 문제입니다. SourceKitService만 높으면 원격 빌드로는 한계가 있습니다. Derived Data 40GB를 지우니 로컬 증분 빌드가 돌아온 적도 있습니다. 원격 빌드는 무거운 일을 노트북에서 빼는 방법입니다.
역할 나누기
- 로컬: 소스,
git commit, MR diff, 가끔 Preview. 전체⌘U는 안 함. - 클라우드 M4: build / test / archive. 인증서·match는 이 키체인만.
- 실기기: 옆에 있으면 로컬, 아니면 빌드 머신.
돌아가게 만들기
1. xcodebuild -version 로컬·원격 일치.2. Git만.3. Derived Data는 원격 ~/Cache/DerivedData 고정 (문서).
build-remote: git push origin HEAD ssh $(REMOTE) 'cd ~/workspace/$(REPO) && git pull --ff-only && xcodebuild -scheme $(SCHEME) -derivedDataPath ~/Cache/DerivedData build'
TN2339 참고.
VNC는 이때만
p12, 키체인 허용, GUI 전용 Archive — 끝나면 끔. VNC로 Swift 작성은 비추.
3인 이상: 같은 M4에 CI
self-hosted runner (문서). runner 노트.
실수
- Derived Data rsync → 인덱스 둘 다 깨짐.
Package.resolved미커밋.- VNC 일상 개발.
- 디스크 512GB 포화 → 장기 디스크.
스펙
M4 24GB 512GB. 고정 IP: 1대 1 IP.
대안
MBP, Xcode Cloud, 해킨토시 VM. Windows만 있으면 Windows+클라우드 Mac. APAC→캐나다 Release.
짧은 답
로컬 Run·원격 compile? VNC 아니면 어렵음. RTT? 빌드는 원격, 로그만 기다림.