😒 ⏳Как ускорить сборку в Xcode и перестать ждать часами
🔗 Статья: How to speed up Xcode build time
Основные идеи:
1️⃣ ИМХО, самая важная - использовать Build Time Summary (и его ассистента/визуализатора) — мощный встроенный способ увидеть узкие места на сборке, для того чтобы принимать решения не вслепую.
Для детализации на CI: попробуйте xclogparser или xcode-build-times.
Как уже не раз говорил, наблюдаемость и инспекция - наше все и то с чего всегда стоит начинать.
2️⃣ Проверить флаги сборки, оптимизации и параллельные билды.
3️⃣ Правильно чистить DerivedData — мы недавно подробно писали об этом тут.
4️⃣ Компилировать только, то что нужно для текущего запуска:
Автор предлагает проверить конфигурацию схемы.
А я бы предложил в том числе, смотреть на уровне исходников и анализа компиляции, например: исключать моки из сборок для Debug-а, если вы их модуляризуете.
5️⃣ Тоже имба в случае верной настройки:
input/output files в кастомных скриптах/фазах сборки (например, для SwiftLint: настройте фазу и используйте параметры --use-script-input-file-lists и --cache-path) — чтобы Xcode не перезапускал всё подряд, на каждом прогоне.
💡 От себя также добавлю:
1️⃣ Bitcode — мёртв. Apple официально отключила его поддержку с iOS 16 (см. release notes), поэтому можно смело его выкидывать из головы.
2️⃣ Оптимизация графа зависимостей: через API/Impl, Dependency Inversion и контроль build critical path — мощнейший рычаг (я писал об этом здесь).
3️⃣ Build cache (локальный или remote) — просто имбовый импакт на многомодульном проекте.
🔥 В сумме это всё может дать десятки процентов прироста при правильном использовании.
#L #Xcode #CompileTime
👏
Post #53
183