Xcode занимает всё моё место
От двадцати до шестидесяти гигабайт на рабочем Mac, разбросанных по шести папкам, ни одну из которых Xcode сам никогда не чистит. Вот каждая из них: для чего нужна и можно ли её удалить.
14 дней бесплатно, карта не нужна. Затем $15 один раз за 3 компьютера.

Сначала измерьте
Одна команда покажет, как общий объём распределяется по папкам Xcode, чтобы вы знали, за какую браться:
du -sh ~/Library/Developer/Xcode/* ~/Library/Developer/CoreSimulator 2>/dev/null | sort -h
Шесть папок
DerivedData — обычно самая крупная · безопасно удалять
Промежуточные файлы сборки, индексы и кэши модулей: по папке на проект, хранятся вечно — в том числе для проектов, которые вы давно удалили.
~/Library/Developer/Xcode/DerivedData
Удаление стоит вам одной медленной пересборки и больше ничего. Это ещё и стандартное лекарство от странного поведения Xcode, поэтому путь наизусть знает каждый iOS-разработчик.
iOS DeviceSupport — крупная · безопасно удалять
Кэши символов, скопированные с каждого физического устройства, которое вы подключали, по папке на сборку iOS. По несколько гигабайт каждая, и они копятся для телефонов, которых у вас уже нет.
~/Library/Developer/Xcode/iOS DeviceSupport
Xcode скопирует их заново, когда вы в следующий раз подключите устройство с этой версией iOS: первое подключение будет медленным, других издержек нет.
Устройства CoreSimulator — крупные · в основном безопасно
У каждого симулируемого устройства своя файловая система, и они никогда не освобождаются. Используйте собственную команду Xcode, а не удаление папок, чтобы его база оставалась целостной:
xcrun simctl delete unavailable
Чтобы пойти дальше, xcrun simctl delete all удаляет все устройства симулятора. Сами среды выполнения симулятора управляются в Xcode → Настройки → Компоненты.
Архивы — небольшие, но незаменимые · сохраните
Каждая сборка, которую вы когда-либо выпускали, вместе с отладочными символами dSYM.
~/Library/Developer/Xcode/Archives
Вот это трогать не надо. Без dSYM для выпущенной сборки вы не сможете расшифровать отчёты о сбоях у пользователей, которые ей пользуются, — стек вызовов навсегда останется набором шестнадцатеричных адресов. Если освобождать место всё же нужно, сохраните архивы всех версий, которые ещё используются.
И снова после следующего выпуска iOS
DerivedData возвращается в день сборки, DeviceSupport растёт с каждым подключённым устройством, и всё это скорее рутина, чем решение. Bytesweep находит все шесть папок за один проход, помечает архивы как требующие проверки, а не для удаления, и позволяет отменить любую очистку в течение семи дней — что особенно важно в тот день, когда вы очистили не тот проект.
Кэш Swift Package Manager — безопасно удалять
Клонированные репозитории зависимостей, которые скачиваются заново по мере надобности.
~/Library/Caches/org.swift.swiftpm
Старые среды симулятора и старые версии Xcode — безопасно при внимательности
Предыдущий Xcode.app сам по себе занимает 15 ГБ, а его среды — ещё несколько. Оставьте ту версию, которая нужна для старого проекта; остальные удалите через Finder, а затем уберите связанные среды в «Настройки → Компоненты».
Две привычки, которые держат объём в узде
Удаляйте DerivedData по проектам, а не целиком
Каждая вложенная папка названа по проекту. Очистка всей папки заставит пересобрать всё, над чем вы работаете сейчас; очистка папок проектов, законченных в прошлом году, не стоит ничего.
Проверяйте DeviceSupport после каждого выпуска iOS
Она растёт на папку с каждой сборкой iOS по всем подключаемым устройствам, поэтому незаметно набирает объём весь год. Две минуты каждый сентябрь не дадут ей превратиться в 30 ГБ.
Найдите все шесть сразу
Bytesweep распознаёт каждую папку Xcode по имени, показывает её размер и помечает архивы как требующие проверки, а не как безопасные для удаления. Всё очищенное попадает в точку восстановления, поэтому отмена — один клик в течение семи дней.
Похожее: Docker disk space · полный список для Mac
Вопросы
Безопасно ли удалять DerivedData?
Да. Она целиком выводится из вашего исходного кода — на это и намекает название. Единственная плата в том, что следующая сборка каждого затронутого проекта будет полной.
Сломает ли удаление DeviceSupport отладку на телефоне?
Нет. Xcode скопирует символы заново при следующем подключении устройства с этой версией iOS. Первое подключение после этого займёт на несколько минут больше.
Можно ли удалять архивы Xcode?
Можно, но сначала подумайте. В архивах лежат файлы dSYM для выпущенных сборок, и без них отчёты о сбоях этих версий расшифровать не получится. Сохраните всё, что ещё у пользователей; старые бета-версии удаляйте спокойно.
Почему сам Xcode.app такой большой?
Около 15 ГБ, потому что он поставляется с наборами инструментов, SDK и средами симуляторов для всех платформ Apple. Неиспользуемые среды симуляторов можно удалить в «Xcode → Настройки → Компоненты», но сам пакет программы такой, какой есть.
Чистит ли Xcode что-нибудь из этого автоматически?
Нет. Ни у одной из этих папок нет ни ограничения по размеру, ни срока хранения. Собственно, поэтому эта страница и существует.