Как удалить старые Xcode Archives и не потерять dSYM
Команда AskClean · Обновлено 2026-11-02
Старые Xcode Archives можно удалить, но только убедившись, что эти сборки больше не распространяются, а их dSYM не понадобятся для символикации отчётов о сбоях. Проверяйте файлы .xcarchive по одному в Organizer, сохраняйте все действующие сборки App Store, TestFlight, Enterprise и Ad Hoc и перемещайте в Корзину только архивы версий, которые уже заменены новыми.

Архив Xcode — не кэш
Команда Product > Archive создаёт пакет .xcarchive в ~/Library/Developer/Xcode/Archives: в нём хранятся точный бинарный файл приложения, метаданные сборки и обычно соответствующий ему dSYM. DerivedData можно пересоздать из исходников, а dSYM привязан к бинарному файлу по UUID: пересборка того же коммита даст другой UUID, и равноценной замены не получится. Если для такой сборки придёт отчёт о сбое, а подходящих символов уже нет, вместо имён функций и строк кода в нём останутся адреса памяти.
Проверьте архивы, прежде чем удалять
Начинайте в Xcode, а не в Finder: в Window > Organizer > Archives для каждого архива видны приложение, версия, номер сборки, дата создания и статус распространения. Сначала составьте список того, что нужно сохранить: сборки, доступные пользователям, активные сборки TestFlight, ещё установленные сборки Enterprise и Ad Hoc и версии, сбои которых вы ещё можете разбирать. Успешная загрузка в App Store Connect не делает локальный архив ненужным, а возраст файла сам по себе ничего не доказывает.
- Откройте Window > Organizer и выберите Archives.
- Выберите приложение и запишите версию и номер каждой используемой сборки App Store, TestFlight, Enterprise или Ad Hoc.
- Убедитесь, что нужные символы загружены, и скопируйте незаменимые архивы туда, где они попадут в резервную копию.
- На удаление отмечайте только заменённые релиз-кандидаты, заброшенные внутренние сборки и версии, сбои которых вы уже не разбираете.
- Удаляйте кандидатов по одному в Organizer, убедитесь, что нужные архивы на месте, и только потом очищайте Корзину.
Одной даты недостаточно: старая релизная сборка может оставаться на устройствах пользователей ещё долго после выхода новой версии.
Удаляйте с возможностью восстановления
Удобнее всего удалять в Organizer: удаляя архив, вы видите его приложение, версию и номер сборки. Finder нужен, только если Organizer не открывает старый или повреждённый пакет: найдите точный .xcarchive, сверив его Info.plist со своим списком, и переместите в Корзину только его, а не всю папку с датой. Не меняйте файлы внутри .xcarchive и не очищайте Корзину, пока снова не откроете Organizer и не проверите нужные экспорты: удаление через rm -rf в «Терминале» лишает вас этой страховки.
Задайте политику хранения
Для каждого релиза записывайте, где лежит архив, загружены ли символы, где резервная копия и когда сборку можно будет удалить. Если место нужно срочно, сначала очистите DerivedData и неиспользуемые данные симуляторов, а архивы разбирайте спокойно, когда на диске появится запас. AskClean показывает каждый .xcarchive отдельно, предупреждает о необратимых последствиях и не относит архивы к восстанавливаемому кэшу; одобренный вами архив удаляется безвозвратно, а не перемещается в Корзину.
Сводка решений и рисков
Какие Xcode Archives можно удалить, где хранятся файлы .xcarchive, как убрать старые сборки в Organizer и когда нужно сохранить dSYM.
| Тема | Где проверить | Что важно |
|---|---|---|
| Архив Xcode — не кэш | ~/Library/Developer/Xcode/Archives | Команда Product > Archive создаёт пакет .xcarchive в ~/Library/Developer/Xcode/Archives: в нём хранятся точный бинарный файл приложения, метаданные сборки и обычно соответствующий ему dSYM. |
| Проверьте архивы, прежде чем удалять | Window > Organizer > Archives | Начинайте в Xcode, а не в Finder: в Window > Organizer > Archives для каждого архива видны приложение, версия, номер сборки, дата создания и статус распространения. |
| Удаляйте с возможностью восстановления | Organizer / Finder / Корзина | Удобнее всего удалять в Organizer: удаляя архив, вы видите его приложение, версию и номер сборки. |
| Задайте политику хранения | Учёт релизов / резервная копия | Для каждого релиза записывайте, где лежит архив, загружены ли символы, где резервная копия и когда сборку можно будет удалить. |
Частые вопросы
Можно ли удалить всю папку Archives?
Не целиком и не вслепую: в ней может лежать единственная копия бинарного файла и dSYM выпущенной версии. Сохраните все действующие сборки App Store, TestFlight, Enterprise и Ad Hoc и версии, сбои которых ещё могут понадобиться.
Если удалить архив, приложение пропадёт из App Store?
Нет. Загруженное приложение останется в App Store Connect и на устройствах пользователей. Вы теряете только локальный артефакт релиза, который может понадобиться для повторного экспорта или символикации.
Можно ли получить dSYM заново, пересобрав тот же коммит?
Надёжно — нет: dSYM должен совпадать по UUID с распространённым бинарным файлом, а новая сборка получит другой UUID. Сохраняйте исходный архив или его dSYM.
Источники