Добавить объявление

В Xcode наконец-то появилась возможность удаления Derived Data

У каждого 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

Но для локальной разработки новая возможность облегчает жизнь разработчиков.

Важный нюанс - новый пункт меню не решает проблему:


Многие разработчики удаляют Derived Data по привычке. Сборка упала - удали. Превью сломалось - удали. Это стало универсальным ответом на любые странности Xcode.

Но если вы удаляете Derived Data каждый день, проблема не в кэше. Кэш - это симптом, а не причина. Что-то не так с конфигурацией проекта, с генерацией файлов, с переключением веток, с версией инструментов.

Новый пункт меню делает восстановление быстрее, но не делает проект здоровее. Хороший разработчик не просто удаляет кэш, а пытается понять причину, почему возникла проблема.

Вывод:


Новый пункт меню Delete Derived Data в Xcode 27 - это не революция, но очень полезное дополнение. Apple наконец-то официально признала: кэш сборки - это техническая деталь, а не часть проекта. Его можно и нужно сбрасывать, когда он начинает мешать.

Но главное здесь не переборщить. Если вы удаляете Derived Data каждый день, проблема не в кэше. Он всего лишь маскирует реальную причину, которая прячется в конфигурации проекта, зависимостях или процессах сборки. Удаление кэша - это временное решение. Найдите и устраните корень проблемы, и тогда новый пункт меню понадобится вам гораздо реже.
17.06.2026 18 574