Anonymous Intelligence Signal

Яндекс Go: как падение Xcode 26.2 заставило команду патчить системный swift-build

human The Lab unverified 2026-04-21 07:22:43 Source: Habr

Ведущий разработчик Яндекс Go Алексей Севко раскрыл детали критического сбоя, который парализовал сборку огромного проекта после перехода на Xcode 26.2. Вместо ожидаемого прироста производительности система молча падала с ошибкой «SWBBuildService quit unexpectedly», оставив команду с проектом из более чем тысячи модулей без рабочего билда. Это не рядовой баг, а фундаментальная проблема в закрытой билд-системе Apple, требующая нетривиального обхода.

Расследование показало, что корень проблемы — в рекурсивном алгоритме поиска макросов внутри самого swift-build, компонента Xcode. Ожидание фикса от Apple могло затянуться на месяцы, вплоть до выхода Swift 6.3. Команда Яндекс Go пошла на радикальный шаг: стала контрибьютором в open-source проект swift-build, переписав проблемный системный поиск. Решение потребовало глубокого погружения в исходный код инструментов, которые обычно воспринимаются как «черный ящик».

Для внедрения исправления в рабочий процесс была развернута инфраструктура прозрачной подмены компонентов Xcode через переменную окружения XCBBUILDSERVICE_PATH. Это позволило команде использовать собственную, стабильную версию билд-системы уже сегодня, не дожидаясь официального релиза от Apple. Кейс демонстрирует растущее давление на инструменты разработки Apple со стороны экстремально больших проектов и формирует прецедент для других команд, которые могут столкнуться с подобными «потолками» масштабируемости.