У каждого iOS-разработчика был момент, когда Xcode вдруг начинал вести себя странно: код не менялся, но сборка падала, SwiftUI Preview выдавал ошибку вместо интерфейса, зависимости переставали подключаться. В подобных случаях часто помогает удаление Derived Data.
Раньше приходилось вручную искать папку Derived Data, но в Xcode 27 это можно сделать прямо из выпадающего меню. Мелочь, а для тысяч разработчиков - это целое событие.
Что такое Derived Data:
Derived Data - это папка, куда Xcode складывает все, что генерирует в процессе сборки: скомпилированные модули, индексы, кэши пакетов, логи и прочие промежуточные артефакты. Это ускоряет повторные сборки.
Но у этого подхода есть обратная сторона. Если кэш расходится с актуальным состоянием проекта, Xcode начинает вести себя непредсказуемо.
Причина почти всегда одна: Xcode держится за устаревшее состояние. И единственный способ сбросить его - удалить Derived Data.
Как это работало раньше:
Самый простой способ удалить Derived Data - выполнить в терминале команду:
rm -rf ~/Library/Developer/Xcode/DerivedData
Но это удаляет кэш для всех проектов сразу. На машине, где несколько активных рабочих пространств, это означает лишние пересборки и потерю времени. Можно открыть Finder, найти папку и удалить только нужный проект. Но это каждый раз занимает лишнее время.
Что изменилось в Xcode 27:
В бете появился пункт в меню Product -> Delete Derived Data. Он удаляет кэш только для текущего проекта. Чисто, быстро, безопасно для других проектов.
Для CI и автоматизации по-прежнему есть командная строка:
xcodebuild -workspace App.xcworkspace -scheme App -derivedDataPath .build/DerivedData clean build
Но для локальной разработки новая возможность облегчает жизнь разработчиков.
🔗 Читать подробнее
💡 Вывод:
Новый пункт меню Delete Derived Data в Xcode 27 - это не революция, но очень полезное дополнение. Apple наконец-то официально признала: кэш сборки - это техническая деталь, а не часть проекта. Его можно и нужно сбрасывать, когда он начинает мешать.
Но главное здесь не переборщить. Если вы удаляете Derived Data каждый день, проблема не в кэше. Он всего лишь маскирует реальную причину, которая прячется в конфигурации проекта, зависимостях или процессах сборки. Удаление кэша - это временное решение. Найдите и устраните корень проблемы, и тогда новый пункт меню понадобится вам гораздо реже.
Подписаться на канал:
➡️ Telegram | Max
Закрытый канал:
🚀 Мобильный трудоголик PRO
