Использование модулей (frameworks) значительно ускоряет инкрементальную компиляцию:
// Вместо одного большого таргета:
// Разделение на логические модули:
// - NetworkLayer.framework
// - CoreDataManager.framework
// - UIComponents.framework
forward declaration
с @class
или @protocol
в Objective-CКлючевые параметры в Xcode:
SWIFT_OPTIMIZATION_LEVEL = -Owholemodule
COMPILER_INDEX_STORE_ENABLE = NO
ENABLE_BITCODE = NO // для разработки
private
и fileprivate
для ограничения видимостиВключите логирование:
Xcode -> Product -> Perform Action -> Build With Timing Summary
Или через терминал:
xcodebuild -workspace Project.xcworkspace -scheme Scheme -sdk iphonesimulator clean build OTHER_SWIFT_FLAGS="-Xfrontend -debug-time-function-bodies" | grep [0-9]ms | sort -nr > build_time.txt
Избегайте:
Используйте:
-Xfrontend -warn-long-function-bodies=100
-Xfrontend -warn-long-expression-type-checking=100
оптимизация компиляции требует комплексного подхода — от архитектурных решений до тонкой настройки Xcode. Начинайте с анализа самых "тяжелых" файлов, внедряйте модульность и следите за сложностью типов. Регулярный мониторинг времени компиляции должен стать частью процесса разработки.