The post has been translated automatically. Original language: Russian
Starting with Flutter 3.44, Swift Package Manager becomes the standard native dependency manager for iOS and macOS applications. CocoaPods will continue to be supported for now, but Flutter has already begun the transition to a solution embedded in the Apple ecosystem.
This change should simplify development and gradually reduce the number of external tools needed to build Flutter applications for Apple platforms.
Why does Flutter need a native dependency manager?
The main part of the Flutter application is created on Dart. However, many plug-ins access the native features of the operating system: camera, geolocation, notifications, biometrics, file storage, and other device functions.
Such plugins may contain Swift or Objective-C code and use third-party libraries for iOS and macOS. To get these libraries, connect them to an Xcode project, and manage versions, you need a separate dependency manager.
For a long time, CocoaPods performed this role in Flutter.
Why CocoaPods is going away
CocoaPods appeared before Swift Package Manager and became one of the main library management tools in iOS development. A large number of existing projects and plugins are built on it.
However, CocoaPods is not part of Apple's standard toolkit. It requires a separate Ruby environment, as well as the installation and configuration of the dependency manager itself. This adds additional components and potential points of failure to the assembly process.
CocoaPods is currently in support mode without active development. Its central Trunk registry will become read-only on December 2, 2026. Libraries that have already been published will be saved, but it will not be possible to add new packages and versions through it.
Therefore, further development of Flutter cannot rely on CocoaPods as the main dependency management method in the long term.
What is Swift Package Manager?
Swift Package Manager, or SwiftPM, is the official package manager for the Swift language. It is being developed as part of the Swift ecosystem and is integrated directly into Xcode.
SwiftPM is responsible for getting libraries, managing their versions, and connecting to projects for Apple platforms. Developers do not need to install a separate Ruby environment or maintain additional infrastructure just for the sake of managing iOS dependencies.
Switching to SwiftPM brings Flutter projects closer to the standard application development process for iOS and macOS.
What has changed in Flutter 3.44
Swift Package Manager support appeared in Flutter earlier, but it was not used by default until version 3.44.
Now, after updating and launching the project, Flutter CLI automatically adds the necessary integration with SwiftPM to the Xcode project. Native dependencies of Flutter plugins are connected through it.
Most of the changes are done automatically. Developers don't have to rebuild a project themselves just to start using a new dependency manager.
CocoaPods will continue to work for now
Flutter 3.44 does not mean immediate abandonment of CocoaPods.
The transition will be gradual, as not all existing plugins already support Swift Package Manager. If Flutter detects a dependency that currently only works through CocoaPods, it can temporarily use the old mechanism.
Thus, Flutter supports both tools during the transition period. This allows you to keep existing applications running and give plugin authors time to update their solutions.
Flutter also recommends that plugin developers keep both SwiftPM and CocoaPods compatible for now. Older versions of Flutter can only use CocoaPods, while new projects are gradually moving to SwiftPM.
What will change for the Flutter ecosystem
For app developers, the transition should be mostly automatic. More significant changes are expected by the authors of Flutter plugins.
They need to add support for Swift Package Manager so that the native parts of the plugins can be connected in a new way. Plugins that are not updated will continue to work for a while due to compatibility with CocoaPods, but in the future they may create restrictions for projects.
This may also affect the development of the pub.dev directory. Actively supported plugins will migrate to SwiftPM, and outdated solutions without updates will gradually become less compatible with current versions of Flutter.
Why this change is important
Switching from CocoaPods to Swift Package Manager is not just about replacing one technical tool with another.
It shows that Flutter is getting closer to Apple's native ecosystem. Instead of a separate dependency manager, the framework starts using a solution that is supported inside Swift and integrated into Xcode.
As a result, the number of external components in the build process is reduced, native library management is simplified, and direct access to the Swift package ecosystem appears.
Conclusion
Starting with Flutter 3.44, Swift Package Manager becomes the standard way to manage native dependencies for iOS and macOS. CocoaPods remains part of the transition period for now, but its role will gradually decrease.
For most application developers, the transition will be almost imperceptible due to automation in the Flutter CLI. The main changes will affect the authors of the plugins, who will have to provide support for SwiftPM.
The abandonment of CocoaPods looks like a logical stage in the development of Flutter: the framework is switching to a modern tool built into the Apple ecosystem and designed for its further development.
Начиная с версии Flutter 3.44, Swift Package Manager становится стандартным менеджером нативных зависимостей для приложений на iOS и macOS. CocoaPods пока продолжит поддерживаться, однако Flutter уже начал переход на решение, встроенное в экосистему Apple.
Это изменение должно упростить разработку и постепенно сократить количество внешних инструментов, необходимых для сборки Flutter-приложений под платформы Apple.
Зачем Flutter нужен менеджер нативных зависимостей
Основная часть Flutter-приложения создаётся на Dart. Однако многие плагины обращаются к нативным возможностям операционной системы: камере, геолокации, уведомлениям, биометрии, файловому хранилищу и другим функциям устройства.
Такие плагины могут содержать код на Swift или Objective-C и использовать сторонние библиотеки для iOS и macOS. Чтобы получить эти библиотеки, подключить их к Xcode-проекту и управлять версиями, необходим отдельный менеджер зависимостей.
Долгое время эту роль во Flutter выполнял CocoaPods.
Почему CocoaPods уходит
CocoaPods появился ещё до Swift Package Manager и стал одним из основных инструментов управления библиотеками в iOS-разработке. На нём построено большое количество существующих проектов и плагинов.
При этом CocoaPods не является частью стандартного инструментария Apple. Для его работы требуется отдельная среда Ruby, а также установка и настройка самого менеджера зависимостей. Это добавляет в процесс сборки дополнительные компоненты и потенциальные точки отказа.
Сейчас CocoaPods находится в режиме поддержки без активного развития. Его центральный реестр Trunk станет доступен только для чтения 2 декабря 2026 года. Уже опубликованные библиотеки сохранятся, но добавлять через него новые пакеты и версии будет невозможно.
Поэтому дальнейшее развитие Flutter не может в долгосрочной перспективе опираться на CocoaPods как на основной способ управления зависимостями.
Что такое Swift Package Manager
Swift Package Manager, или SwiftPM, — официальный менеджер пакетов для языка Swift. Он развивается как часть экосистемы Swift и интегрирован непосредственно в Xcode.
SwiftPM отвечает за получение библиотек, управление их версиями и подключение к проектам для платформ Apple. Разработчикам не требуется устанавливать отдельную среду Ruby или поддерживать дополнительную инфраструктуру только ради управления iOS-зависимостями.
Переход на SwiftPM делает Flutter-проекты ближе к стандартному процессу разработки приложений для iOS и macOS.
Что изменилось во Flutter 3.44
Поддержка Swift Package Manager появилась во Flutter раньше, но до версии 3.44 она не использовалась по умолчанию.
Теперь после обновления и запуска проекта Flutter CLI автоматически добавляет в Xcode-проект необходимую интеграцию со SwiftPM. Через неё подключаются нативные зависимости Flutter-плагинов.
Большинство изменений выполняется автоматически. Разработчикам не нужно самостоятельно перестраивать проект только для того, чтобы начать использовать новый менеджер зависимостей.
CocoaPods пока продолжит работать
Flutter 3.44 не означает немедленного отказа от CocoaPods.
Переход будет постепенным, поскольку не все существующие плагины уже поддерживают Swift Package Manager. Если Flutter обнаруживает зависимость, которая пока работает только через CocoaPods, он может временно использовать прежний механизм.
Таким образом, в течение переходного периода Flutter поддерживает оба инструмента. Это позволяет сохранить работоспособность существующих приложений и дать авторам плагинов время на обновление своих решений.
Flutter также рекомендует разработчикам плагинов пока сохранять совместимость и со SwiftPM, и с CocoaPods. Старые версии Flutter могут использовать только CocoaPods, тогда как новые проекты постепенно переходят на SwiftPM.
Что изменится для экосистемы Flutter
Для разработчиков приложений переход должен пройти преимущественно автоматически. Более существенные изменения ожидают авторов Flutter-плагинов.
Им необходимо добавить поддержку Swift Package Manager, чтобы нативные части плагинов могли подключаться новым способом. Плагины, которые не будут обновлены, некоторое время продолжат работать благодаря совместимости с CocoaPods, но в дальнейшем могут создавать ограничения для проектов.
Это также может повлиять на развитие каталога pub.dev. Активно поддерживаемые плагины будут переходить на SwiftPM, а устаревшие решения без обновлений постепенно станут менее совместимыми с актуальными версиями Flutter.
Почему это изменение важно
Переход с CocoaPods на Swift Package Manager — не просто замена одного технического инструмента другим.
Он показывает, что Flutter становится ближе к нативной экосистеме Apple. Вместо отдельного менеджера зависимостей фреймворк начинает использовать решение, которое поддерживается внутри Swift и интегрировано в Xcode.
В результате уменьшается количество внешних компонентов в процессе сборки, упрощается управление нативными библиотеками и появляется прямой доступ к экосистеме Swift-пакетов.
Вывод
Начиная с Flutter 3.44, Swift Package Manager становится стандартным способом управления нативными зависимостями для iOS и macOS. CocoaPods пока остаётся частью переходного периода, но его роль будет постепенно сокращаться.
Для большинства разработчиков приложений переход окажется практически незаметным благодаря автоматизации во Flutter CLI. Основные изменения затронут авторов плагинов, которым предстоит обеспечить поддержку SwiftPM.
Отказ от CocoaPods выглядит закономерным этапом развития Flutter: фреймворк переходит на современный инструмент, встроенный в экосистему Apple и рассчитанный на её дальнейшее развитие.