Вернуться в блог

Безопасно ли удалять архивы Xcode на Mac?

Что лежит в ~/Library/Developer/Xcode/Archives, зачем dSYM внутри нужны для отчётов о сбоях, какие архивы можно удалить и как убрать их через Organizer в Xcode.

Опубликовано 25 октября 2026 г. Автор Vladimir Chemeris Время чтения 4 мин чтения
XcodeАрхивыDeveloper Cleanup

Большинство архивов Xcode можно удалять спокойно, а некоторые стоят больше, чем подсказывает их размер. Каждый архив соответствует сборке, которую вы экспортировали или загрузили, а его dSYM хранят символы именно этого бинарника. Архивы сборок, которые никто не запускает, удаляйте. Архивы всех версий, которые где-то ещё установлены, оставьте, если только их символы уже не лежат в сервисе сбора сбоев или в App Store Connect.

Главное правило: храните архив каждой сборки, которую ещё кто-то запускает. Остальные удаляйте через Organizer в Xcode, а не из терминала.

Краткий ответ

  1. Измерьте папку: du -sh ~/Library/Developer/Xcode/Archives/* | sort -h | tail.
  2. Откройте Xcode, затем Window, Organizer, Archives.
  3. Оставьте последнюю выпущенную сборку каждого приложения и любую более старую, которая ещё стоит у ваших пользователей.
  4. Убедитесь, что символы сборок, которые вы собираетесь удалить, есть в сервисе сбора сбоев или в App Store Connect.
  5. Удалите тестовые экспорты, заменённые загрузки и истёкшие сборки TestFlight.
  6. Архивы, в которых не уверены, перенесите на внешний диск вместо удаления.

Что внутри архива Xcode

Xcode создаёт архив каждый раз, когда вы запускаете Product, Archive или xcodebuild archive. Архивы складываются в ~/Library/Developer/Xcode/Archives, по одной папке на день, а каждый пакет называется по схеме и времени создания, например MyApp 21.09.2026, 14.13.xcarchive.

Что внутри .xcarchiveЧто там хранится
dSYMsотладочные символы приложения и встроенных в него фреймворков
Productsсобранное приложение
Info.plistверсия, номер сборки и дата создания
Signaturesметаданные подписи

Я измерил эту папку на своём Mac 25 октября 2026 года, на macOS 27.0.1 и Xcode 27.1. В ней было 3,9 ГБ: 35 архивов 11 приложений, все созданы с 16 августа по 24 октября. Типичный архив занимал около 165 МБ, самый большой 407 МБ. В одном архиве StorageRadar папка dSYMs весила 84 МБ, а само приложение 39 МБ: символы оказались тяжелее продукта.

Зачем нужны dSYM

В отчёте о сбое релизной сборки вместо имён функций стоят адреса в памяти. Xcode и сервисы сбора сбоев переводят эти адреса в имена с помощью dSYM, чей UUID совпадает с UUID упавшего бинарника. Проверить, к какой сборке относится dSYM, можно так:

dwarfdump --uuid ~/Library/Developer/Xcode/Archives/2026-09-21/*.xcarchive/dSYMs/*.dSYM

Повторная архивация того же коммита даёт новый бинарник, а в большинстве конфигураций и новый UUID. Поэтому удалённый архив нельзя воссоздать для разбора сбоев: отчётам старой сборки нужен старый dSYM.

Вторая копия может храниться в двух местах:

  • App Store Connect. Если при дистрибуции включена загрузка символов приложения, Apple сама расшифровывает отчёты о сбоях, которые вы видите в Organizer в Xcode.
  • Сервис сбора сбоев. Sentry, Firebase Crashlytics и похожие сервисы загружают dSYM во время сборки, если проект для этого настроен, и хранят их у себя.

Если ни то ни другое к сборке не относится, её архив остаётся единственной копией символов.

Какие архивы можно удалить

Удаляйте без долгих раздумий:

  • архивы локальных экспортов и экспортов Ad Hoc, которые вы делали, чтобы что-то проверить;
  • сборки, которые вы загрузили, а потом заменили более новой сборкой той же версии;
  • сборки TestFlight старше 90 дней, ведь через 90 дней срок их действия в TestFlight истекает.

Оставляйте:

  • архив сборки, которая сейчас опубликована в App Store, и одной-двух предыдущих, если ваши пользователи обновляются медленно;
  • архивы сборок, которые вы распространяете вне App Store: может понадобиться заново экспортировать или нотаризовать именно эту сборку;
  • всё, у чего нет второй копии символов, пока по этой сборке ещё приходят отчёты о сбоях.

Как удалить архивы

В Xcode. Откройте Window, Organizer и выберите Archives. Слева выберите приложение, отметьте один или несколько архивов и удалите их через контекстное меню. Organizer работает прямо с папкой архивов, поэтому пакеты удаляются с диска.

В Finder. Выполните open ~/Library/Developer/Xcode/Archives и перенесите в Корзину папки с датами целиком. Перенесённое пропадёт из списка в Organizer.

На внешний диск. Скопируйте старые папки с датами на внешний диск, затем удалите их с Mac. Xcode продолжит работать и без архивов на внутреннем диске, а если когда-нибудь придёт отчёт о сбое старой сборки, нужный архив можно скопировать обратно.

Ещё можно указать Xcode другую папку для архивов: Xcode Settings, Locations.

Archives и DerivedData

Эти две папки лежат рядом в ~/Library/Developer/Xcode, но ведут себя противоположно. DerivedData содержит результаты сборки, которые Xcode создаст заново при следующей сборке, так что её удаление обойдётся вам в одну медленную сборку. Archives хранят сборки, которые вы выпустили, и ничто их не пересоздаст. DerivedData чистите свободно, а Archives разбирайте по одному.

Итог

Удалять архивы Xcode безопасно, если это сборки, которые никто не запускает, и дорого, если ими ещё пользуются. Измерьте папку, откройте Organizer, сохраните архив каждой живой версии и, прежде чем удалять старые сборки, проверьте, где лежат их символы. Если сомневаетесь, внешний диск обойдётся дешевле, чем отчёт о сбое, который не прочитать.

Об авторе

Vladimir Chemeris

Основатель, StorageRadar

Владимир Чемерис разрабатывает StorageRadar — macOS-приложение для анализа хранилища с упором на приватность, очистку с предварительным просмотром, хранилище разработчика и сравнение до и после.

FAQ

Безопасно ли удалять архивы Xcode?

Да, если это архивы сборок, которые больше никто не запускает: тестовые экспорты, заменённые загрузки, истёкшие сборки TestFlight. Архив каждой сборки, которая где-то ещё установлена, оставьте: его dSYM превращают отчёты о сбоях этой сборки в читаемые стектрейсы.

Если удалить архив Xcode, приложение пропадёт из App Store?

Нет. Загруженная сборка остаётся в App Store Connect. Архив хранит вашу локальную копию этой сборки и её отладочные символы.

Можно ли пересобрать удалённый архив?

Тот же коммит можно заархивировать снова, но в большинстве конфигураций новый бинарник получит новый UUID. Старым отчётам о сбоях нужен dSYM со старым UUID, поэтому они останутся без символов, если этот dSYM не хранится где-то ещё, например в App Store Connect или в сервисе сбора сбоев.

Где Xcode хранит архивы на Mac?

В ~/Library/Developer/Xcode/Archives, по одной папке на день с именем вроде 2026-10-24. Путь виден в Xcode: Settings, Locations. Каждый архив хранится как пакет .xcarchive, внутри которого приложение, его dSYM и Info.plist.

Сколько места занимают архивы Xcode?

Зависит от приложения. На моём Mac типичный архив занимал около 165 МБ, самый большой 407 МБ. Тридцать пять архивов за десять недель набрали 3,9 ГБ, потому что каждая загрузка оставляет после себя архив.

Источники и ссылки

Посмотрите на Archives рядом с остальными папками разработчика.

Dev Cleanup в StorageRadar показывает размеры Archives, DerivedData, CoreSimulator и кэшей пакетов рядом, помечает каждую папку по уровню риска и запускает Dry Run до любого удаления.