Вывод: WWDC 26 (8 июня) выпустила Xcode 26 / iOS 27 SDK — ни одного нового Mac объявлено не было. Для iOS-команд это классический сценарий «ПО идёт вперёд, железо молчит»: ваш CI-конвейер должен одновременно поглотить сброс кэша + полную перекомпиляцию + очереди переполненных хостируемых Runner-ов. Время сборки увеличивается не на 10%, а рушится структурно.
Четыре накладывающихся фактора: ① обновление до beta вынуждает полностью очистить DerivedData; ② модули iOS 27 SDK стали тяжелее, компиляция Swift — дороже; ③ без M5 Mac mini нет ближайшего пути к росту вычислительной мощности; ④ в июне вся отрасль одновременно гоняет CI, время ожидания macos-latest резко возрастает.
Ловушка, которую нужно избежать: объяснять замедление тем, что «M4 не справляется», и пассивно ждать осеннего M5 — смена чипа не исправляет ephemeral-модель Runner.
Решение, которое работает прямо сейчас: self-hosted Mac mini с постоянным диском, разделение beta-валидации и production-release по отдельным лейблам Runner. Подробности в руководстве по ускорению self-hosted Runner.
В понедельник, 9 июня, Slack-каналы iOS-лидов загорелись почти одновременно: «Archive на main вырос с 11 минут до 34 за ночь», «macos-latest висит в очереди 18 минут, не стартует», «установил Xcode 26 beta — DerivedData исчез». Это не ошибка конфигурации отдельного репозитория. Сезон WWDC каждый год вызывает CI-землетрясение. В 2026 году к нему добавились дефицит памяти, отсутствие нового десктопного Mac и заметно потяжелевший SDK Apple Intelligence. Почему не показали M5 — читайте в M5 Mac mini: почему его не было на WWDC 26. Эта статья отвечает на один вопрос: почему ваш конвейер резко замедлился и что изменить прямо сейчас.
1) Три типичных симптома замедления CI после WWDC
Откройте логи Actions. Если вы фиксируете два и более из следующих признаков — перед вами волна WWDC-шока, а не регрессия в собственном коде:
- Фаза bootstrap резко растёт:
pod install, SPM resolve и загрузка runtime iOS 27 Simulator съедают по несколько минут каждая — хостируемый Runner стартует с нуля при каждом job, поэтому эта фаза страдает больше всего. - Сборка откатывается к полной компиляции: после смены major-версии Xcode форматы ModuleCache и DerivedData несовместимы с предыдущей версией. Инкрементальная компиляция перестаёт работать; время
xcodebuildприближается к холодному старту. - Очереди растягиваются: в первые 72 часа после WWDC тысячи команд одновременно обновляют workflow, чтобы опробовать beta, заполняя общий пул хостируемых macOS-минут GitHub. Время ожидания в очереди нередко превышает само время сборки.
Setup Xcode и Run script в последнем зелёном билде до WWDC и в текущем. Если Setup вырос с ~1 минуты до ~8 минут и компиляция перестала быть инкрементальной — проблема в смене тулчейна, а не в Swift-логике вашего приложения.2) Xcode 26 beta: вынужденный «сезон сброса кэша»
Apple выложила beta Xcode 26 и iOS 27 SDK прямо в день WWDC. Для локального разработчика обновление — это переиндексация и немного ожидания; для CI-инфраструктуры это означает, что всё состояние на диске становится недействительным:
- Изменение пути DerivedData и формата индекса — старый кэш не переиспользуется; первый Archive после обновления всегда будет полной сборкой.
- Смена версии компилятора Swift — бинарные файлы
.swiftmoduleнесовместимы; все таргеты компилируются заново. - Нестабильность lockfile CocoaPods / SPM — часть Pod-ов ещё не поддерживает iOS 27, что заставляет
pod installповторно резолвить зависимости или запускать полныйrepo-update. - Новый Simulator runtime — несколько гигабайт на runtime; хостируемый Runner скачивает его заново при каждом job, добавляя 5–15 минут к bootstrap.
Более глубокий организационный риск — вынужденное принятие beta под давлением: на следующий день после keynote в каждой компании кто-то спрашивает «мы поддерживаем Siri AI?» — и команда проталкивает Xcode 26 в main, не будучи готовой. Одно изменение workflow переводит весь CI-парк в режим холодного старта. Правильный подход — разделение конвейеров: production release остаётся на стабильном Xcode 16; только ветка ios-27-beta или специальный beta-Runner используются для работы по адаптации. Справочная информация — в матрице поддержки Xcode.
3) Раздувание SDK: объём компиляции растёт, мощность остаётся прежней
Программный нарратив WWDC 26 — Siri AI и расширение Apple Intelligence (обзор WWDC 26 на MacRumors). Для инженеров приложений это оборачивается реальными издержками на сборку:
- Новые зависимости от фреймворков (App Intents, абстракции пайплайнов Vision/Speech) — в граф линкера добавляются дополнительные модули.
- Более строгая проверка конкурентности Swift 6 — одинаковый исходный код требует больше работы от компилятора.
- Разрастание Asset Catalogs и ресурсов локализации — фаза Copy Bundle Resources заметно удлиняется.
На локальном M4 MacBook с тёплым кэшем всё это может ощущаться как «пара лишних минут». На хостируемом Runner без постоянного кэша добавки накладываются на штраф холодного старта и превращают «медленно» в «неприемлемо». Apple выпускает AI-возможности, а счёт оплачивают разработчики, стоящие в очереди CI.
4) Нет нового Mac: путь к апгрейду вычислительной мощности закрыт
В предыдущих циклах WWDC десктопные команды могли утешить себя мыслью «после конференции купим новый Mac mini для CI». В 2026 году анонсов железа не было; M5 Mac mini ожидается в осеннем окне, а глобальный дефицит памяти делает SKU на 24 ГБ / 32 ГБ труднодоступными даже при наличии. Практические последствия:
- Команды, рассчитывавшие «откупиться» от медленных сборок новым железом — решение о закупке заморожено на 3–4 месяца.
- Команды, уже работающие на M2/M3 с 16 ГБ RAM — после обновления SDK памяти становится ещё меньше; когда
swift-frontendи Simulator работают параллельно, включается своп и время сборки нелинейно ухудшается. - Команды, планировавшие добавить второй Runner для повышения параллелизма — сроки поставки железа не позволяют успеть к дедлайну адаптации beta.
Речь не о том, что M4 не хватает — для подавляющего большинства iOS CI M4 16 ГБ достаточно. Главное: основная причина замедления после WWDC — не производительность чипа, а модель выполнения (ephemeral vs. постоянный диск). Ждать M5 — значит подменять инженерную проблему аппаратным нарративом.
5) «Давка WWDC» в хостируемых Runner-ах
Каждый июнь хостируемый macOS-пул GitHub испытывает пик спроса. Особенность 2026 года: AI-нарратив привлёк в macOS-задачи не-iOS-команды — запускать конвертацию Core ML, тестировать примеры Apple Intelligence, — которые конкурируют за тот же пул с настоящими release-конвейерами приложений.
Три структурных недостатка хостируемых Runner-ов усиливаются в сезон WWDC:
| Недостаток | В обычное время | После WWDC |
|---|---|---|
| Ephemeral-диск | Холодный старт терпимый | Каждый beta-job заново скачивает все компоненты SDK |
| Общая очередь | Ночью сносно | В рабочее время queued >10 мин — норма |
| Инвалидация cache action | DerivedData частично попадает | Смена major-версии Xcode обнуляет все cache key |
Переключение на лейблы macos-15 или macos-latest не поможет — смена лейбла меняет образ ОС, но не «ваш DerivedData сохранится завтра». В нашем анализе скорости GitHub Actions iOS CI среднее Swift-приложение на хостируемых Runner-ах показывает P50 ~28 минут, из которых очередь + bootstrap обычно занимают больше половины; рост bootstrap на +40% сам по себе после WWDC — не редкость в наших данных.
6) До и после WWDC: типичные изменения времени для одного репозитория (выборка)
Ниже — наблюдения P50 от клиентов Nuvcloud, которые не меняли модель Runner, просто обновив main до Xcode 26 beta — Swift/UIKit-проект с CocoaPods и одной схемой. Это не SLA; проверяйте на своём репозитории:
| Фаза | P50 до WWDC | P50 после WWDC |
|---|---|---|
| queued | 5 мин | 12 мин |
| bootstrap | 7 мин | 14 мин |
| build / archive | 9 мин | 16 мин |
| sign + upload | 4 мин | 5 мин |
| Итого | ~25 мин | ~47 мин |
Тот же репозиторий на self-hosted Mac mini M4 — production-job зафиксирован на Xcode 16, обновляется только beta-Runner — удерживает production P50 на уровне до WWDC. Beta-ветка требует 20+ минут на полную сборку в первую неделю, но не затрагивает main. В этом и ценность разделения Runner-ов.
7) Что делать прямо сейчас: исправить модель выполнения, не ждать M5
В первые 48 часов после WWDC выполните следующие шаги в порядке приоритета:
- Зафиксировать версию Xcode для production release — жёстко прописать
xcode-selectилиDEVELOPER_DIRв workflow; запретить main автоматически следовать за любой beta. - Beta-работа — в отдельную ветку + отдельный лейбл Runner — например
runs-on: [self-hosted, macos, xcode26-beta], изолированно от production-лейблаios-ci. - Перейти на self-hosted Runner с постоянным диском — DerivedData, Pods и SPM-кэши переживают границы job-ов; начиная со второй beta-сборки время возвращается к инкрементальному. Инструкция: документация по self-hosted runners GitHub.
- Simulator runtime устанавливать только один раз — запечь iOS 27 runtime в образ Runner; больше не запускать
xcodebuild -downloadPlatformв шагах workflow. - Проверить на 48-часовой дневной аренде — перед переходом на месячный план возьмите облачный Mac mini на два дня, чтобы замерить реальное время сборки. Выбор региона — в сравнении TCO Runner-ов по шести регионам.
8) Часто задаваемые вопросы
Нужно ли немедленно обновляться до Xcode 26 после WWDC? Нет. Отправка в App Store по-прежнему требует стабильной версии Xcode; beta используется только для ранней адаптации к API iOS 27 и должна быть изолирована в отдельном конвейере.
M5 Mac mini осенью решит всё раз и навсегда? Структурно — нет. Новый чип может ускорить полную компиляцию на 10–15%, но не исправит накладные расходы холодного старта при каждом job. При дефиците памяти SKU M5 на 24/32 ГБ могут оказаться дорогими — просчитайте TCO прежде, чем вас захлестнёт волна launch-ажиотажа.
Разве кэширования DerivedData через actions/cache недостаточно? В сезон WWDC обычно нет. Cache-ключи инвалидируются после major-обновления Xcode; а сетевое время загрузки/скачивания гигабайт DerivedData нередко дороже, чем работа с локальным постоянным диском.
Что делать, если beta нестабильна и CI целиком краснеет? Это ожидаемо. Beta-Runner не должен блокировать мёрж в main — пометьте beta-конвейер как optional status check или запускайте его только ночью (nightly).
Чем WWDC 2026 хуже предыдущих? Три фактора одновременно: раздувание SDK под влиянием AI, отсутствие нового десктопного Mac и давление на цепочку поставок памяти. По отдельности каждый из них управляем; вместе они заставляют диагностировать замедление как «железо слабое» — что ведёт к неверным закупкам или бессмысленному наращиванию хостируемых минут.
WWDC выпустила новый SDK — вычислительная мощность не обязана ждать осени
Production на Xcode 16, beta — на выделенный Runner: попробуйте Nuvcloud M4 Mac mini на 48-часовой дневной аренде → руководство по ускорению self-hosted Runner