З кожним розробником iOS, macOS, watchOS і visionOS повторюється той самий кошмар: прокидається сповіщення про те, що на вашому Mac залишилося менше 5 ГБ вільного місця на диску. Ви не завантажували жодних ігор чи фільмів, тож куди подівся ваш SSD на 512 ГБ? У 95% випадків винуватцем є Xcode DerivedData та кеш збірки.
Під час активної компіляції Xcode генерує файли проміжних об’єктів, попередньо скомпільовані заголовки, таблиці символів індексування та кеші модулів компілятора. Протягом місяців створення різних гілок і залежностей ці папки ніколи не очищаються самостійно. Ось як чисто та безпечно повернути від 50 до 100 ГБ дискового простору розробника.

Де Xcode ховає свої важкі дискові кеші
Xcode розповсюджує свої продукти тимчасової збірки та файли підтримки в п’яти основних каталогах:
- DerivedData (
~/Library/Developer/Xcode/DerivedData): Проміжні об’єктні файли, індексні бази даних і створювані продукти. Споживає 20–60 ГБ. - Підтримка пристроїв iOS (
~/Library/Developer/Xcode/iOS DeviceSupport): символи з кожного фізичного iPhone або iPad, які ви коли-небудь підключали. Споживає 5–15 ГБ на кожну версію iOS. - Архіви (
~/Library/Developer/Xcode/Archives): старі збірки .xcarchive зберігаються під час створення робочих випусків App Store. Може збільшитися до 40 ГБ+ протягом року. - Кеш диспетчера пакунків Swift (
~/Library/Caches/org.swift.swiftpm): Клоновані репозиторії git і скомпільовані двійкові файли перевірки для залежностей SPM. - XCTestDevices (
~/Library/Developer/XCTestDevices): Загублені тимчасові клони симулятора, створені під час розпаралеленого тестування.
Чи безпечно видаляти DerivedData?
Так, безсумнівно. DerivedData можна відновити на 100%. Наступного разу, коли ви відкриєте проект і натиснете Cmd+B, Xcode повторно проіндексує ваш код і скомпілює необхідні об’єктні файли. Єдиною ціною є трохи довший початковий час створення під час першого запуску.
Видалення вручну через термінал проти MagicMacCleaner
Ви можете видалити DerivedData вручну, вийшовши з Xcode і виконавши: rm -rf ~/Library/Developer/Xcode/DerivedData/*. Однак ручне видалення терміналу видаляє всі ваші проекти одночасно, навіть той, над яким ви зараз працюєте.
Спеціальний модуль Xcode Deep Clean MagicMacCleaner вирішує цю проблему, зчитуючи дату зміни кожної вкладеної папки проекту. Це дозволяє зберегти активні проекти недоторканими, одночасно очищаючи сплячі клієнти та застарілі сховища одним клацанням миші.
Робочий процес розробника мобільних пристроїв: звільнення пам’яті на фізичних тестових iPhone
Хоча очищення кешу Xcode, середовища виконання симулятора та контейнерів збірки звільняє життєво важливий простір на вашому Mac, фізичні тестові пристрої iOS швидко забиваються тестовими збірками, артефактами збоїв, діагностичними записами екрана та знімками екрана QA. Для швидкого налагодження на пристрої та надійного розгортання необхідно підтримувати економічне обладнання для фізичного тестування.
- Clearly Smart Storage Cleaner: стискає гігабайтні записи екрана звітів про помилки, виявляє дублікати тестових носіїв і впорядковує захаращені контакти щодо розробки та особистого iPhone.
- Swipe Photo Cleaner: Швидко переглядайте та видаляйте сотні тестових скріншотів інтерфейсу користувача та демонстраційних серій за допомогою легких рухів, щоб видалити.
Порада для розробників екосистеми Apple: оптимізація тестового пристрою
Нестача пам’яті на підключених пристроях iOS може спричинити тайм-аути бездротового розгортання Xcode та збої налагодження LLDB. Регулярне очищення носія на пристрої запобігає загадковим помилкам розгортання збірки.
