Как удалить Pods и очистить кэш CocoaPods на Mac

Удалить Pods на Mac безопасно: в этой папке лежат исходники зависимостей и проект, который CocoaPods собрал для Xcode, а те же версии CocoaPods восстановит по Podfile и Podfile.lock. Ещё CocoaPods хранит общий кэш скачанных подов и репозитории спецификаций, которые на старых установках занимают много места. Здесь — обо всём этом и о том, что проверить, если ваша команда хранит Pods в Git.

MacWashing, раздел «Сборка мусора»: найдены мусор Xcode, пользовательский кэш, установщики и журналы, к очистке 22,83 ГБ
  1. Откройте MacWashing и выберите Сборка мусора в боковом меню.
  2. Нажмите Начать сканирование.
  3. Просмотрите находки и нажмите Очистить. Всё спорное остаётся без галочки.

Бесплатная пробная версия · macOS 14 и новее

Можно ли удалить папку Pods

Да. В Pods лежат исходники зависимостей и проект Pods, который CocoaPods создал для Xcode. Оставьте Podfile и Podfile.lock: по ним pod install вернёт те же версии.

CocoaPods советует хранить Pods в системе контроля версий, и некоторые команды так и делают. В таком проекте удаление папки появится в Git как изменения. Удаляйте её там, только если больше не работаете с проектом.

Как удалить Pods

  1. Закройте Xcode.
  2. Откройте папку проекта в Finder и переместите папку Pods в Корзину.
Finder, папка iOS-проекта: выделена папка Pods рядом с Podfile и рабочим пространством
  1. Очистите Корзину.

Когда вернётесь к проекту, выполните в его папке эту команду. Она снова скачает поды или возьмёт их из кэша CocoaPods:

pod install

Как очистить кэш CocoaPods командой pod cache clean

CocoaPods хранит копию каждой скачанной версии пода, общую для всех проектов. Эта команда показывает, что лежит в кэше:

pod cache list

А эта удаляет весь кэш без вопросов. Проекты и их папки Pods остаются. Следующий pod install пода, которого ещё нет в проекте, скачает его заново:

pod cache clean --all

Чтобы удалить из кэша один под, укажите его имя, например pod cache clean Alamofire. Без имени CocoaPods требует --all, чтобы весь кэш не стёрся случайно.

Удалить старый репозиторий master

Репозитории спецификаций — это списки подов и их версий. С версии 1.8 CocoaPods берёт их из CDN, и локальная копия получается маленькой. На Mac, где CocoaPods пользовались раньше, может остаться полный репозиторий master, который вырос очень большим. Эта команда показывает репозитории на вашем Mac:

pod repo list

Перед удалением проверьте свои Podfile. Если в одном из них есть строка source 'https://github.com/CocoaPods/Specs.git', замените её на source 'https://cdn.cocoapods.org/'. Иначе следующий pod install снова скачает весь репозиторий.

Если в списке есть master, эта команда удалит его. Проекты останутся, а CocoaPods будет пользоваться CDN:

pod repo remove master

А с MacWashing это в один клик

MacWashing, раздел «Сборка мусора»: найдены мусор Xcode, пользовательский кэш, установщики и журналы, к очистке 22,83 ГБ

Сборка мусора в MacWashing показывает кэш CocoaPods и репозитории спецификаций в разделе «Кэш программ», а папки Pods проектов, которые вы не меняли 90 дней, — в «Зависимостях проектов». Всё это без галочки: заново скачивать поды долго, поэтому решаете вы. Кэш других программ очищается за тот же проход.

Бесплатная пробная версия · macOS 14 и новее

Вопросы и ответы

Удалит ли MacWashing мои файлы при очистке?

Нет. Он удаляет только то, что может сопоставить с известной программой или известным видом мусора, и только там, где программы оставляют файлы; macOS и файлы Apple не затрагиваются. Всё спорное помечено и остаётся без галочки, пока вы не решите.

Что будет с открытыми программами?

Если файлы заняты открытой программой, MacWashing подождёт, пока она закроется, или закроет её по вашей команде, а после очистки откроет снова.

Это бесплатно?

Да, в пробном режиме: Сборка мусора и Деинсталлятор вместе освобождают до 25 ГБ, без аккаунта и карты.

Безопасно ли удалять папку Pods?

Да, если оставить Podfile и Podfile.lock: pod install вернёт те же версии. Ему нужен интернет, если подов уже нет в кэше CocoaPods.

Что удаляет pod cache clean --all?

Только общий кэш скачанных подов. Папки Pods в проектах, Podfile и репозитории спецификаций остаются.

Нужен ли pod deintegrate, чтобы удалить Pods?

Нет. pod deintegrate убирает CocoaPods из самого проекта Xcode — это для перехода на другой менеджер зависимостей. Чтобы освободить место, достаточно удалить папку Pods, а pod install её вернёт.