AskClean

Чи можна видалити Xcode Archives? Як прибрати старі збірки

Команда AskClean · Оновлено 2026-11-02

Так, старі Xcode Archives можна видалити, але лише переконавшись, що збірку знято з розповсюдження, а її dSYM більше не знадобиться для звітів про збої. Переглядайте файли .xcarchive по одному в Organizer, залишайте кожну актуальну збірку App Store, TestFlight, Enterprise чи Ad Hoc і переміщуйте в Смітник лише архіви замінених версій.

Ізометрична ілюстрація: пакети архівів Xcode поділено на захищені поточні релізи та старі збірки, які можна видалити
Архіви — це свідчення релізів, а не звичайний кеш: захищайте поточні збірки, а старі перевіряйте по одній.

Чим архів відрізняється від DerivedData

Команда Product > Archive створює пакет .xcarchive з точним бінарним файлом програми, метаданими збірки й зазвичай відповідними файлами dSYM; типово Xcode зберігає такі пакети в ~/Library/Developer/Xcode/Archives, у папках за датами. DerivedData можна відтворити з вихідного коду ціною повільнішої першої збірки, а dSYM привʼязаний до конкретного бінарного файлу через UUID: повторна збірка того самого коміту отримає інші ідентифікатори й рівноцінної заміни не дасть. Якщо для збірки з видаленим архівом надійде звіт про збій, без відповідних символів у стеку лишаться адреси памʼяті замість назв функцій і рядків коду.

Проведіть інвентаризацію до видалення

Починайте в Xcode, а не у Finder: у Window > Organizer > Archives для кожного запису видно програму, версію, номер збірки, дату створення й стан розповсюдження — контекст, якого не дає назва папки з датою. Спершу складіть список того, що треба залишити: кожну версію, доступну користувачам, активні збірки TestFlight, ще встановлені збірки Enterprise чи Ad Hoc і релізи, збої яких ви ще можете аналізувати. Успішне надсилання в App Store Connect не робить локальний архів зайвим: Apple радить зберігати архів кожної розповсюдженої збірки. Щоб оцінити виграш, нічого не змінюючи, виконайте в «Терміналі» du -sh ~/Library/Developer/Xcode/Archives або у Finder перейдіть до перегляду списком і ввімкніть «Підраховувати всі розміри» в параметрах перегляду.

  1. Відкрийте Window > Organizer і виберіть Archives.
  2. Виберіть програму й запишіть версію та номер кожної збірки App Store, TestFlight, Enterprise чи Ad Hoc, яка ще використовується.
  3. Переконайтеся, що потрібні символи надіслано (де це передбачено), і скопіюйте незамінні архіви в сховище з резервним копіюванням, якщо цього вимагають ваші правила зберігання.
  4. Позначте для видалення лише замінені релізні кандидати, покинуті внутрішні збірки й версії поза періодом аналізу збоїв.
  5. Видаляйте кандидатів по одному в Organizer, переконайтеся, що потрібні записи лишилися, і лише тоді очистьте Смітник.

Дата сама по собі — ненадійне правило зберігання: старіша релізна збірка може ще довго лишатися встановленою на пристроях клієнтів після виходу нової версії.

Видаляйте по одному й зберігайте можливість відновлення

Organizer — найкращий спосіб видалення, бо поруч із дією видно програму, версію й номер збірки. Finder знадобиться, лише якщо Organizer не відкриває старий чи пошкоджений пакет: звірте метадані Info.plist з інвентаризацією й перемістіть у Смітник один конкретний .xcarchive, а не всю папку за датою. Не змінюйте файли всередині пакета — архів виглядатиме на місці, але може вже не годитися для експорту чи символізації. Не очищуйте Смітник, доки знову не відкриєте Organizer, не експортуєте потрібні збірки й, якщо символи критично важливі, не символізуєте типовий збій; остаточне видалення через «Термінал» прибирає цей запас безпеки.

Визначте політику зберігання

Орієнтуйтеся на стан релізу, а не на вік файлу: зберігайте все, що зараз розповсюджується, нещодавно замінені релізи — доки приймаєте звіти про їхні збої, збірки Enterprise — доки не спливе строк їхніх інсталяцій, а також версії, яких вимагають юридичні чи службові правила. Для кожного релізу фіксуйте, де лежить архів, чи надіслано dSYM, хто може його дістати й коли збірку можна видалити. Коли місця бракує терміново, почніть із DerivedData й непотрібних даних Simulator. AskClean показує кожен .xcarchive окремо з попередженням про незворотні наслідки й не вважає Archives кешем для масового видалення; підтверджені елементи він видаляє назавжди, а не переміщує в Смітник.

Підсумок рішень і ризиків

Які Xcode Archives можна видалити, де зберігаються файли .xcarchive, як прибрати старі збірки в Organizer і коли варто зберегти dSYM.

ТемаДе або чим перевіритиЩо врахувати
Чим архів відрізняється від DerivedData~/Library/Developer/Xcode/ArchivesКоманда Product > Archive створює пакет .xcarchive з точним бінарним файлом програми, метаданими збірки й зазвичай відповідними файлами dSYM; типово Xcode зберігає такі пакети в ~/Library/Developer/Xcode/Archives, у папках за датами.
Проведіть інвентаризацію до видаленняWindow > Organizer > ArchivesПочинайте в Xcode, а не у Finder: у Window > Organizer > Archives для кожного запису видно програму, версію, номер збірки, дату створення й стан розповсюдження — контекст, якого не дає назва папки з датою.
Видаляйте по одному й зберігайте можливість відновленняOrganizer / Finder / СмітникOrganizer — найкращий спосіб видалення, бо поруч із дією видно програму, версію й номер збірки.
Визначте політику зберіганняОблік релізів / резервна копіяОрієнтуйтеся на стан релізу, а не на вік файлу: зберігайте все, що зараз розповсюджується, нещодавно замінені релізи — доки приймаєте звіти про їхні збої, збірки Enterprise — доки не спливе строк їхніх інсталяцій, а також версії, яких вимагають юридичні чи службові правила.

Часті запитання

Чи можна видалити все в ~/Library/Developer/Xcode/Archives?

Не одним махом. Архіви можуть містити точні dSYM і бінарні файли розповсюджених збірок. Залиште кожну актуальну збірку App Store, TestFlight, Enterprise чи Ad Hoc і версії, збої яких ви ще можете аналізувати.

Чи зникне програма з App Store, якщо видалити архів?

Ні. Видалення локального .xcarchive не прибирає вже надіслану програму з App Store Connect чи пристроїв клієнтів. Ви втрачаєте лише локальний артефакт релізу, який може знадобитися для повторного експорту або символізації.

Чи можна відтворити dSYM, зібравши той самий коміт?

Надійно — ні. dSYM має збігатися з UUID розповсюдженого бінарного файлу, а нова збірка отримує інший ідентифікатор. Зберігайте оригінальний архів або відповідні йому символи.

Джерела

Інші посібники зі сховища для розробників