Я работаю на MacBook Air с 16 ГБ. Писать Swift нормально, но ⌘B на полную сборку — вентиляторы, SourceKit и компилятор душат диск, курсор подвисает. Нужен не обязательно MacBook Pro, а чтобы сборка не занимала единственный ноутбук.
Рабочая схема: ультрабук — правки и Git, облачный Mac mini M4 — только xcodebuild. Xcode целый день по VNC не вариант (через океан хуже локалки). Удалённая машина — постоянно включённый билдер.
Сборка или индексация?
swift-frontend, XCBBuildService — проблема сборки. Вечный SourceKitService — сначала Derived Data. Удаление 40 ГБ старого кэша вернуло локальные инкрементальные сборки. Облако снимает тяжёлую работу с ноутбука, не лечит всё.
Разделение
- Локально: код,
git commit, diff MR. - Облачный M4: build, test, archive; сертификаты только там.
- Устройство: рядом — к ноутбуку, иначе на билдере.
Запуск
Версии Xcode совпадают; только Git; Derived Data на билдере ~/Cache/DerivedData (документация Apple).
build-remote: git push origin HEAD ssh $(REMOTE) 'cd ~/workspace/$(REPO) && git pull --ff-only && xcodebuild -scheme $(SCHEME) -derivedDataPath ~/Cache/DerivedData build'
VNC — редко
p12, Keychain, мастер Archive — и закрыть. Не пишите код в VNC.
Команда: тот же M4 как runner
Self-hosted — заметка о runner.
Ошибки
- rsync Derived Data
- забыли
Package.resolved - ежедневная работа в VNC
- диск 512 ГБ полон → диск и параллелизм
Железо
M4, 24 ГБ, 512 ГБ. Стабильный IP: один IP на машину.
Альтернативы
MBP, Xcode Cloud, хакинтош-ВМ. Только Windows: облачный Mac. APAC: Release и нотаризация.
Коротко
«Run локально, сборка удалённо» без VNC — нет. RTT SSH для логов нормален. Сертификаты не на личном Mac.