Практически всех обладателей MBA объединяет небольшой размер SSD-диска. Если Вы ведете разработку приложений в Xcode более или менее длительное время, Вы знаете, что Xcode имеет малоприятное свойство захламлять диск различного рода данными и кэшами. Самое неприятное заключается в том, что, например, после окончания работы на приложением кэши никуда не исчезают. Воспользовавшись программой DaisyDisk я провел небольшое исследование того, куда уходит место на SSD при работе с Xcode. Результаты под катом.

В поисках путей оптимизации размеров кэшей Xcode смотреть прежде всего стоит в разделе Preferences > Locations (рис. 1).

Освобождаем место занятое Xcode, рис. 1

Рис. 1. Вкладка Locations позволяет управлять/узнать место хранения различных кэшей Xcode


Из рис. 1 видно, что по-умолчанию Xcode хранит свои кэши в разделе ~/Library/Developer/Xcode/ (рис. 2).

Освобождаем место занятое Xcode, рис. 2

Рис. 2. Содержимое ~/Library/Developer/Xcode/ как бы намекает нам почистить себя


Derived Data

По адресу ~/Library/Developer/Xcode/DerivedData располагаются данные разрабатываемых приложений, необходимые для ускорения сборки приложений. Эти данные генерируются для каждого созданного Вами проекта. Xcode автоматически не удаляет сгенерированные данные, что оборачивается для пользователя большим объемом “мертвого груза” на жестком диске.

Кстати, я уже рассказывал о небольшом приложении Watchdog for Xcode, которое умеет автоматически чистить директорию DerivedData. Весьма рекомендую обратить на него внимание.

Archives

Архив приложения - это собранное приложение, однако, еще не запакованное (и, соответственно, не подписанная идентификационными данными разработчика) в .ipa-файл. Выполняя команду Product > Archive Вы получаете именно архив приложения. По умолчанию архивы приложений располагаются по адресу ~/Library/Developer/Xcode/Archives. Поскольку архивы значительно больше, чем .ipa-файлы (за счет содержащейся в них отладочной информации), имеет смысл периодически удалять старые архивы приложений. Сделать это можно на вкладке Archives в Organizer-е (рис. 3).

Освобождаем место занятое Xcode, рис. 3

Рис. 3. Вкладка Archives в Organizer


Устаревшая информация об устройствах

По адресу ~/Library/Developer/Xcode/iOS DeviceSupport/ располагаются данные, специфические для каждой конкретной версии iOS когда-либо подключенных к Маку устройств, использованных для iOS-разработки. Каждая версия занимает порядка 400 Мб дискового пространства. Данные генерируются каждый раз при подключении устройства с версией iOS, отличной от всех тех, что уже имеются в данной директории. В моем случае я освободил порядка 4 Гб дискового пространства очистив эту директорию от старых версий iOS.

Устаревшая документация

Справка в Xcode 5 умеет работать в двух режимах: при наличии подключения к Интернет она просто запрашивает необходимую информацию с серверов справки Apple. Если интернета нет, отображается только структура справочной документации и, если соответствующие наборы документации (DocSets) были загружены ранее, отображается само содержимое справки.

С выходом новых версий OS X, iOS и Xcode старые наборы документации никуда не удаляются и остаются на машине. При этом они могут занимать от 200 до 800 Мб и более. Если у Вас нет необходимости хранить оффлайн-справку по устаревшим версиям Xcode, iOS и OS X, можно смело удалить соответствующие DocSets. Находятся они по адресу ~/Library/Developer/Shared/Documentation/DocSets. В моем случае (рис. 4) удалив все старые наборы документации я получил дополнительно 2,6 Гб дискового пространства.

Освобождаем место занятое Xcode, рис. 4

Рис. 4. Вот столько документации накопилось у меня за полтора года работы на этой машине


Для установки последних актуальных DocSets необходимо зайти в Xcode зайти в Preferences > Downloads (рис. 5) и выбрать интересующие разделы оффлайн-справки. Поскольку я достаточно редко пользуюсь оффлайн-справкой, я практически никогда не загружаю ее в Xcode.

Освобождаем место занятое Xcode, рис. 5

Рис. 5. Вкладка Downloads позволяет загрузить оффлайн-документацию. Которая займет намало места на Вашем SSD.


Устаревшие симуляторы

Если у Вас нет необходимости тестировать разрабатываемые приложения на симуляторах iOS ранних версий, можно смело удалить их из раздела ~/Library/Application Support/iPhone Simulator. При выходе новых версий iOS старые симуляторы не удаляются автоматически, поэтому имеет смысл заглядывать в этот раздел и удалять старые версии симуляторов, которые Вы уже точно не будете использовать в работе.

Освобождаем место занятое Xcode, рис. 6

Рис. 6. Установленные на моей машине симуляторы iOS


Заключение

Безусловно, нет никакой необходимости непременно чистить все данные по указанным адресам. В конце-концов, Xcode не случайно создает так много кэшей - они способствуют ускорению сборки Ваших приложений. Однако имеет смысл хотя бы иногда заглядывать в указанные директории и проверять, не завалялось ли там что-нибудь ненужное.

Также еще раз рекомендую обратить внимание на приложение Watchdog for Xcode, которое сделает Вашу жизнь чуть проще, чистя DerivedData автоматически.