Flutter Embraces Swift Package Manager: Your Guide to the CocoaPods Phase-Out

Flutter is making a major shift in its iOS and macOS dependency management. Starting with Flutter 3.44, Swift Package Manager (SwiftPM) becomes the default, replacing CocoaPods. This change simplifies development by removing Ruby and CocoaPods installation requirements, while aligning with Apple's supported ecosystem. CocoaPods will enter maintenance mode and its registry becomes read-only on December 2, 2026. Below we answer the most pressing questions about this transition.

What exactly is changing in Flutter 3.44?

With the upcoming stable Flutter release (3.44), Swift Package Manager becomes the default dependency manager for iOS and macOS apps. CocoaPods is no longer the go‑to tool. The Flutter CLI now automatically converts your Xcode project to use Swift packages when you run or build. This means you no longer need to install Ruby or CocoaPods just to get your app working. CocoaPods itself is moving into maintenance mode; its registry will become read‑only on December 2, 2026. After that date, no new pods or versions will be added to the trunk, though existing builds will continue to work. The goal is to ensure Flutter apps can benefit from Apple’s officially supported dependency management and receive ongoing updates from the Swift package ecosystem.

Flutter Embraces Swift Package Manager: Your Guide to the CocoaPods Phase-Out

How do app developers handle the migration?

For app developers, the migration is mostly automatic. When you run flutter run or build your iOS/macOS app, the Flutter CLI updates your Xcode project to use Swift Package Manager. Detailed steps are available in the Flutter migration docs for app developers. If your app depends on plugins that haven't yet adopted SwiftPM, Flutter will print a warning listing those unsupported dependencies. In that case, Flutter temporarily falls back to CocoaPods for those plugins. However, this fallback will be removed eventually. If a plugin breaks your build because it hasn’t updated, you should file an issue with the plugin’s maintainer requesting Swift package support, or find an alternative package. If SwiftPM causes a breaking issue, you can temporarily disable it by setting enable-swift-package-manager: false under the flutter > config block in your pubspec.yaml, and report the problem via the Flutter GitHub issue template.

What must plugin developers do to support SwiftPM?

Plugin authors who maintain iOS or macOS plugins must add Swift Package Manager support if they haven't already. So far, 61% of the top 100 iOS plugins have migrated. To encourage the remaining plugins to adopt SwiftPM, packages without support now receive lower pub.dev scores until they migrate. The migration involves adding a Package.swift file and moving your source files to match the standard Swift package structure. If you already migrated during the 2025 pilot, you need to complete one new step: add FlutterFramework as a dependency in your Package.swift file. Detailed instructions are provided in the Flutter migration docs for plugin developers. This step is crucial to ensure app developers aren’t stuck relying on a deprecated tool.

Can I opt out of SwiftPM if it breaks my build?

Yes, you can temporarily disable Swift Package Manager for your project. To do so, open your pubspec.yaml file, navigate to the flutter section, and set enable-swift-package-manager to false under the config block. If you opt out, please file a bug report using the Flutter GitHub issue template. Include error details, a list of your plugins and versions, and copies of your Xcode project files. This helps the Flutter team resolve issues before CocoaPods support is completely removed. Note that opting out is a temporary measure; eventually, all plugins must support SwiftPM, and the fallback to CocoaPods will be removed.

What is the timeline for CocoaPods deprecation?

Starting with Flutter 3.44 (the next stable release), SwiftPM becomes the default. CocoaPods enters maintenance mode immediately. The CocoaPods registry will permanently become read‑only on December 2, 2026. After that date, no new versions or pods can be added to the trunk. Existing builds that rely on CocoaPods will still work, but you will not receive dependency updates from the CocoaPods ecosystem. To keep receiving updates and access the Swift package ecosystem, all plugins and apps must migrate to SwiftPM. Plugin developers are strongly encouraged to complete migration as soon as possible; those who haven’t adopted SwiftPM will see lower pub.dev scores, creating incentive to move quickly.

What if a plugin I rely on hasn’t migrated to SwiftPM?

If your app depends on a plugin that has not adopted Swift Package Manager, Flutter will print a warning listing exactly which dependencies are unsupported during the build. Flutter will temporarily fall back to CocoaPods for those plugins, so your app should still build. However, because CocoaPods support will eventually be removed entirely, this fallback is not a permanent solution. If the lack of SwiftPM support breaks your build, you should file an issue with the plugin's maintainer requesting Swift package support. Alternatively, you can search for an alternative package that already supports SwiftPM. Plugin maintainers are encouraged to migrate to avoid lower pub.dev scores and to ensure compatibility with future Flutter releases.

Tags:

Recommended

Discover More

Breaking Free from the Fork: Meta’s Multi-Year WebRTC Modernization Journeyev88123bviva88The Slow Pace of Programming Innovation and the Sudden Rise of Stack Overflow1winking331winking33ev88123bGitHub Copilot Adopts Usage-Based Pricing with AI CreditsKDE Plasma 6.6.5 Resolves NVIDIA Performance Woes, Plasma 6.7 Preview Unveils New Capabilitiesviva88How to Generate Novel Proteins Using Latent Diffusion on Folding Models