DevOps / CI·CD 11 апреля 2026

Xcode SwiftPM реестр, resolve и CI-кэш на арендованном облачном Mac (2026)

MacXCode Engineering Team · ~16 мин

На Apple Silicon в SG/JP/KR/HK/US East чаще ломается загрузка зависимостей, а не компилятор. Читайте также SwiftPM и CocoaPods, параллельный xcodebuild, self-hosted runner.

Почему важен регион

  • Разные маршруты egress и списки IP.
  • Git LFS и бинарные артефакты чувствительны к RTT.
  • Мультитенант: не делите глобальный SPM-кэш слепо.
Правило: коммитить Package.resolved на релизных ветках; на main — только чтение resolve.

Аутентификация без GUI

Секреты CI → ~/.netrc, права 600, удаление после задачи.

Политика lock

ВеткаПолитикаCI
mainLock обязателенОшибка при изменении графа
FeatureОбновления ботомPR с новым lock
Библиотекачасто без lockвременный lock в CI

Пути

ПутьРольЗаметка
SourcePackagesИсходникиизоляция на задачу
DerivedDataИндекслимиты параллелизма
Глобальный SPMЗагрузкитёплый RO + отдельные писатели

Шаги CI

swift package resolve — подпись и resolve в том же пользователе, что и удалённый archive.

Матрица

ТемаМетрикаМитигация
RTTTTFBзеркало
GitHub429backoff
Дискfs_usageотдельный том

FAQ

ВопросОтвет
Отключать кэш?Только при отладке порчи.
Xcode Cloud?См. сравнение.
ДетерминизмChecksum Package.resolved в CI.

Mac mini M4

Быстрый NVMe и unified memory. Тарифы, Справка.

Выделенный Apple Silicon CI

HK · JP · KR · SG · US