Услуги Портфолио Контакты БлогНовости +7 (800) 302‑79‑27 Обсудить проект
Облако

CocoaPods 2 декабря перестанет принимать новые поды: iOS-проектам пора на Swift Package Manager

15 ноября 2026·5 мин чтения
CocoaPodsSwift Package Manager
CocoaPods 2 декабря перестанет принимать новые поды: iOS-проектам пора на Swift Package Manager

2 декабря 2026 года центральный репозиторий CocoaPods trunk переходит в режим только для чтения. Новые поды и новые версии уже существующих туда больше не попадут. Старые сборки продолжат работать, но обновления зависимостей через CocoaPods для iOS-проектов прекратятся, поэтому библиотеки пора переводить на Swift Package Manager.

О дате напомнил ноябрьский выпуск блога swift.org, а сам план мейнтейнеры CocoaPods опубликовали ещё в ноябре 2024 года. Если ваша разработка iOS-приложений до сих пор держится на Podfile, у команды остаются считаные недели, чтобы составить список зависимостей и решить, какие из них переносить первыми.

Затронуты не только нативные проекты на Swift. Flutter и React Native тоже исторически подтягивают iOS-часть через CocoaPods, и у каждого фреймворка свой статус перехода. Когда вы решаете, как заказать разработку мобильного приложения с долгой поддержкой, стоит сразу уточнить у подрядчика, каким менеджером зависимостей он собирает iOS-версию.

Что именно изменится в CocoaPods 2 декабря

План опубликовал мейнтейнер Орта Терокс (Orta Therox) в блоге CocoaPods 30 ноября 2024 года и обновил его в мае 2025-го. Для команд из него следуют три вещи:

  • Trunk перестанет принимать podspec. Сервер будет отклонять любую новую спецификацию, а репозиторий CocoaPods/Specs на GitHub получит статус «Archived».
  • Существующие сборки не сломаются. Specs-репозиторий и CDN продолжат работать, пока существуют GitHub и jsDelivr. pod install будет находить версии, опубликованные до заморозки.
  • Новых версий зависимостей через trunk не будет. Если автор библиотеки выпустит исправление после 2 декабря, через публичный CocoaPods оно до вас не дойдёт.

Изменения не касаются команд, которые используют собственный specs-репозиторий или вендорят все зависимости, например получают их из npm.

С мая 2025 года trunk уже не принимает новые поды с полем prepare_command: мейнтейнеры закрыли его после того, как исследователи безопасности стали злоупотреблять скриптами в спецификациях.

Чем грозит заморозка trunk для действующего приложения

Сборка от заморозки не пострадает, страдать будут безопасность и совместимость. Приложение продолжит собираться, только на старых версиях библиотек: SDK аналитики, платежей, авторизации, push-уведомлений. Если вендор выпустит патч уязвимости или поддержку следующей версии iOS только в Swift Package Manager, проект на CocoaPods её не получит. Со временем Podfile превращается в список зависимостей, которые нельзя обновить.

Второй риск касается ваших внутренних библиотек. Если команда публиковала общие модули в публичный trunk, после 2 декабря новый релиз туда не загрузить. Внутренние поды придётся перенести в приватный specs-репозиторий или оформить как Swift-пакеты.

Как к заморозке подготовились Flutter, React Native и нативный Swift

У кросс-платформенных фреймворков разный статус перехода, и от него зависит срочность работ.

  • Flutter. С версии 3.44 поддержка Swift Package Manager включена по умолчанию: после обновления Flutter интеграция SwiftPM добавляется в проект автоматически. CocoaPods Flutter поддерживает в режиме обслуживания. Включить SwiftPM глобально можно командой flutter config --enable-swift-package-manager, отключить для одного проекта можно в pubspec.yaml через enable-swift-package-manager: false.
  • React Native. В версии 0.87 появилась экспериментальная поддержка Swift Package Manager. Она включается вручную, а CocoaPods остаётся путём по умолчанию. Команда React Native прямо предупреждает, что команды и структура проекта ещё могут поменяться, и не советует использовать новый режим в продакшене.
  • Нативный Swift. Swift Package Manager встроен в Xcode. В ноябрьском выпуске swift.org сообщается, что принято предложение SE-0547 о кэше компиляции SwiftPM (swift package build-cache configure), так что сам инструмент продолжает развиваться.

Если вы выбираете стек для нового продукта, учитывайте, что у Flutter путь с SwiftPM уже основной, а у React Native он пока экспериментальный. Подробное сравнение фреймворков есть в разборе Flutter или React Native.

Как перевести iOS-проект на Swift Package Manager: пять шагов

  1. Инвентаризируйте Podfile. Выпишите все поды и для каждого проверьте, публикует ли автор Swift-пакет (файл Package.swift в репозитории).
  2. Переносите по одной зависимости. Начните с SDK, от которых зависят безопасность и публикация в App Store: аналитики, платежей, авторизации. Подключите каждый через Xcode, удалите его из Podfile и пересоберите проект.
  3. Найдите зависимости без SwiftPM. Для заброшенных библиотек подберите замену, форкните библиотеку с добавлением Package.swift или закрепите версию и запланируйте отказ от неё.
  4. Вынесите внутренние модули. Оформите их как Swift-пакеты в своём git-репозитории или перенесите в приватный specs-репозиторий, если переход пока невозможен.
  5. Обновите CI. Уберите шаги с Ruby, Bundler и pod install там, где они больше не нужны, настройте кэширование пакетов и прогоните полный регресс на устройствах.

Часто задаваемые вопросы

Перестанет ли собираться приложение на CocoaPods после 2 декабря?

Нет. Мейнтейнеры CocoaPods прямо пишут, что переход в режим чтения не ломает сборки: pod install и pod update работают с версиями, опубликованными до заморозки. Новых версий через trunk при этом не будет.

Можно ли сдвинуть дату?

В плане сказано, что сроки не высечены в камне и перенос на более позднюю дату возможен в разумных пределах. Перенос на более раннюю дату автор исключает. Тестовый запуск режима чтения прошёл 2–6 ноября 2026 года.

Что делать с внутренними подами компании?

Быстрый вариант — перенести их в приватный specs-репозиторий, его заморозка не затрагивает. Долгосрочный — оформить модули как Swift-пакеты, чтобы в будущем не зависеть от CocoaPods.

Источники

Материал подготовлен редакцией YuSMP Group по открытым источникам. Нужна экспертиза по теме или разработка под задачу — обсудим проект.

Переведём iOS-проект с CocoaPods на SwiftPM

Проведём аудит Podfile, перенесём SDK и внутренние модули на Swift Package Manager, найдём замену заброшенным библиотекам и обновим CI без остановки релизов.

Обсудить iOS-разработку