AskCleanAskClean

Как полностью удалить Xcode с Mac, не потеряв проекты и dSYM

Команда AskClean · Обновлено 2026-09-01

Перед полным удалением Xcode создайте резервные копии проектов и сохраните Archives и dSYM, нужные для выпущенных сборок. Затем переместите приложение в Корзину и отдельно проверьте DerivedData, симуляторы, DeviceSupport и инструменты командной строки.

Как полностью удалить Xcode с Mac, не потеряв проекты и dSYM
Перед полным удалением Xcode создайте резервные копии проектов и сохраните Archives и dSYM, нужные для выпущенных сборок. Затем переместите приложение в Корзину и отдельно проверьте DerivedData, симуляторы, DeviceSupport и инструменты командной строки.

Перед удалением защитите невосстановимые данные

Папки проектов не являются остатками Xcode. Сохраните репозитории, незафиксированные файлы, локальные пакеты и ресурсы. Не удаляйте Archives/dSYM версий, которые ещё работают в App Store, TestFlight или у клиентов, а также важное состояние Simulator.

  1. Сначала закройте Xcode. Удаление DerivedData при работающем Xcode может запутать его индексатор, а открытые Xcode файлы могут удалиться некорректно.
  2. Найдите папку: в Xcode откройте Settings > Locations и щёлкните маленькую стрелку рядом с путём DerivedData, чтобы показать её в Finder. Или в Finder нажмите Command-Shift-G и введите ~/Library/Developer/Xcode/DerivedData напрямую.
  3. Отсортируйте подпапки проектов по размеру, выделите те, от которых хотите избавиться (или Command-A для всех), и переместите их в Корзину. Сначала в Корзину — более безопасная привычка: передумав, вы мгновенно всё вернёте.
  4. Вариант из Терминала: rm -rf ~/Library/Developer/Xcode/DerivedData удаляет всё одним махом. Для очень больших папок это быстрее Finder, но перед использованием прочтите примечание ниже.
  5. Снова откройте Xcode и соберите проект. Первая сборка каждого проекта будет заметно дольше, а в панели активности какое-то время будет крутиться «Indexing» — и то и другое разовая цена.

Осторожнее с rm -rf: команда минует Корзину и удаляет безвозвратно, без отмены. Вводите путь в точности, никогда не запускайте её с sudo для этой задачи, а если в Терминале вам некомфортно — путь через Finder делает то же самое обратимо.

Удалите DerivedData

Сделать это можно тремя способами, и все они ведут к одному результату. Команда Clean Build Folder в Xcode (Product > Clean Build Folder, или Command-Shift-K) очищает продукты сборки только текущего открытого проекта — полезно, чтобы починить странную сборку, но на место на диске почти не влияет. Чтобы вернуть реальное место, удаляйте сами папки DerivedData.

Удаление по проектам — хирургический вариант: оставьте DerivedData для двух-трёх проектов, которые собираете ежедневно, и удалите папки всего остального. Удалить всё целиком — быстрый вариант, и он тоже нормальный: просто цену полной пересборки вы заплатите по всем проектам сразу.

Удалите приложение тем же способом, которым оно было установлено

Завершите Xcode и Simulator и переместите правильный Xcode.app в Корзину через Finder. Не удаляйте автоматически /Library/Developer/CommandLineTools: их могут использовать Git, Homebrew, clang и сценарии сборки.

Кеши менеджеров пакетов (SwiftPM, CocoaPods, npm, Homebrew)

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

Swift Package Manager кеширует скачанные пакеты в ~/Library/Caches/org.swift.swiftpm, а разрешённые checkout-копии каждого проекта живут ещё и внутри его папки DerivedData — так что очистка DerivedData уже очищает их. Общий кеш можно удалить из Finder или через rm -rf по этому пути.

Проверьте всё перед очисткой Корзины

Повторно проверьте Applications, процессы и xcode-select -p. Убедитесь, что проекты, нужные Archives/dSYM и данные Simulator сохранены, и только затем очистите Корзину. System Data может обновиться с задержкой.

Карта безопасности полного удаления

Безопасно удалите Xcode, отдельно оценив восстанавливаемые кэши, Archives, DeviceSupport, данные Simulator и Command Line Tools.

РешениеГде проверить или выполнитьПоследствие и проверка
Перед удалением защитите невосстановимые данныеProjects / Xcode Organizer / ArchivesПапки проектов не являются остатками Xcode. Сохраните репозитории, незафиксированные файлы, локальные пакеты и ресурсы. Не удаляйте Archives/dSYM версий, которые ещё работают в App Store, TestFlight или у клиентов, а также важное состояние Simulator.
Удалите приложение тем же способом, которым оно было установлено/Applications/Xcode.app / FinderЗавершите Xcode и Simulator и переместите правильный Xcode.app в Корзину через Finder. Не удаляйте автоматически /Library/Developer/CommandLineTools: их могут использовать Git, Homebrew, clang и сценарии сборки.
Проверьте всё перед очисткой Корзиныxcode-select -p / Activity MonitorПовторно проверьте Applications, процессы и xcode-select -p. Убедитесь, что проекты, нужные Archives/dSYM и данные Simulator сохранены, и только затем очистите Корзину. System Data может обновиться с задержкой.

Частые вопросы

Можно удалить весь ~/Library/Developer?

Нет. Там вместе с восстанавливаемым DerivedData находятся Archives/dSYM, DeviceSupport, runtime и состояние Simulator; каждую категорию нужно оценивать отдельно.

Безопасно ли удалять DerivedData?

Да — это одно из самых безопасных крупных удалений на Mac. DerivedData содержит только файлы, которые Xcode генерирует из вашего исходного кода: продукты сборки, кеши модулей, индексы и журналы. Ваш код, файлы проекта и история git живут в другом месте и никогда не затрагиваются. Единственное последствие — следующая сборка каждого проекта будет полной, и индексация запустится заново.

Как часто чистить DerivedData?

Обязательного графика нет — чистите, когда папка выросла настолько, что это имеет значение; для большинства активных разработчиков это раз в месяц-два. Два момента оправдывают очистку всегда: когда место на диске нужно срочно и когда проект выдаёт необъяснимые ошибки сборки или устаревшее автодополнение — в таких случаях сброс DerivedData служит стандартным первым средством.

Источники

Связанные руководства по полному удалению