Как освободить место, используемое Xcode
Практически всех обладателей MBA объединяет небольшой размер SSD-диска. Если Вы ведете разработку приложений в Xcode более или менее длительное время, Вы знаете, что Xcode имеет малоприятное свойство захламлять диск различного рода данными и кэшами. Самое неприятное заключается в том, что, например, после окончания работы на приложением кэши никуда не исчезают. Воспользовавшись программой DaisyDisk я провел небольшое исследование того, куда уходит место на SSD при работе с Xcode. Результаты под катом.
В поисках путей оптимизации размеров кэшей Xcode смотреть прежде всего стоит в разделе Preferences > Locations
(рис. 1).
Из рис. 1 видно, что по-умолчанию Xcode хранит свои кэши в разделе ~/Library/Developer/Xcode/
(рис. 2).
Derived Data
По адресу ~/Library/Developer/Xcode/DerivedData
располагаются данные разрабатываемых приложений, необходимые для ускорения сборки приложений. Эти данные генерируются для каждого созданного Вами проекта. Xcode автоматически не удаляет сгенерированные данные, что оборачивается для пользователя большим объемом “мертвого груза” на жестком диске.
Кстати, я уже рассказывал о небольшом приложении Watchdog for Xcode, которое умеет автоматически чистить директорию DerivedData
. Весьма рекомендую обратить на него внимание.
Archives
Архив приложения - это собранное приложение, однако, еще не запакованное (и, соответственно, не подписанная идентификационными данными разработчика) в .ipa-файл. Выполняя команду Product > Archive
Вы получаете именно архив приложения. По умолчанию архивы приложений располагаются по адресу ~/Library/Developer/Xcode/Archives
. Поскольку архивы значительно больше, чем .ipa-файлы (за счет содержащейся в них отладочной информации), имеет смысл периодически удалять старые архивы приложений. Сделать это можно на вкладке Archives в Organizer-е (рис. 3).
Устаревшая информация об устройствах
По адресу ~/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 Гб дискового пространства.
Для установки последних актуальных DocSets необходимо зайти в Xcode зайти в Preferences > Downloads
(рис. 5) и выбрать интересующие разделы оффлайн-справки. Поскольку я достаточно редко пользуюсь оффлайн-справкой, я практически никогда не загружаю ее в Xcode.
Устаревшие симуляторы
Если у Вас нет необходимости тестировать разрабатываемые приложения на симуляторах iOS ранних версий, можно смело удалить их из раздела ~/Library/Application Support/iPhone Simulator
. При выходе новых версий iOS старые симуляторы не удаляются автоматически, поэтому имеет смысл заглядывать в этот раздел и удалять старые версии симуляторов, которые Вы уже точно не будете использовать в работе.
Заключение
Безусловно, нет никакой необходимости непременно чистить все данные по указанным адресам. В конце-концов, Xcode не случайно создает так много кэшей - они способствуют ускорению сборки Ваших приложений. Однако имеет смысл хотя бы иногда заглядывать в указанные директории и проверять, не завалялось ли там что-нибудь ненужное.
Также еще раз рекомендую обратить внимание на приложение Watchdog for Xcode, которое сделает Вашу жизнь чуть проще, чистя DerivedData автоматически.