Starting with Flutter 3.44, Swift Package Manager (SwiftPM) becomes the default dependency manager for iOS and macOS apps, replacing CocoaPods. This Q&A covers the main points of the transition, including what changes, how app and plugin developers are affected, and what to do if you run into issues.
What Is Changing in Flutter 3.44?
With the upcoming stable release of Flutter 3.44, the Flutter tool will automatically use Swift Package Manager (SwiftPM) instead of CocoaPods when building iOS and macOS apps. This means you no longer need to have Ruby or CocoaPods installed to run your Flutter project. The Flutter CLI handles the conversion of your Xcode project to use SwiftPM. While existing CocoaPods-based builds still work, the default has shifted. If you rely on plugins that haven't yet adopted SwiftPM, Flutter will temporarily fall back to CocoaPods for those dependencies, but this compatibility layer will be removed in the future.
Why Is Flutter Moving Away from CocoaPods?
CocoaPods has entered maintenance mode. Its registry will become permanently read-only on December 2, 2026, meaning no new versions or pods will be added after that date. To ensure that Flutter apps continue to receive dependency updates and can tap into the broader Swift package ecosystem, the Flutter team has chosen Apple’s officially supported solution: Swift Package Manager. This shift also simplifies the developer experience by removing the need for Ruby and CocoaPods installations, reducing setup friction. The longer-term goal is to fully phase out CocoaPods support, so migrating now ensures your projects stay compatible and secure.
How Does the Migration Affect App Developers?
For app developers, the process is largely automatic. When you run or build your iOS or macOS app with Flutter 3.44+, the CLI updates the Xcode project to use Swift Package Manager. If any of your plugins haven’t adopted SwiftPM yet, Flutter will print a warning listing exactly which dependencies are unsupported. It will then fall back to CocoaPods for those plugins temporarily. You can check the official Flutter migration docs for app developers for step-by-step guidance. If a plugin never migrates and later breaks your build, you should file an issue with the plugin’s maintainer or find an alternative package that supports SwiftPM.
What Happens If a Plugin Hasn't Adopted Swift Package Manager?
If your app depends on plugins that haven’t migrated to SwiftPM, Flutter will show a warning listing those plugins at build time. The tool will then temporarily use CocoaPods for those dependencies, so your app should still run. However, this fallback is only temporary because CocoaPods support will be fully removed eventually. Plugin authors are encouraged to migrate promptly; as of now, 61% of the top 100 iOS plugins have already added SwiftPM support. To incentivize the rest, packages without SwiftPM support receive lower pub.dev scores. If a plugin you rely on hasn’t updated, contact its maintainer or consider switching to a SwiftPM-compatible alternative.
Can I Opt Out of Swift Package Manager?
Yes, you can temporarily disable SwiftPM if you encounter breaking issues. To do so, open your pubspec.yaml file, locate the flutter section, and under the config block set enable-swift-package-manager: false. For example:flutter:
config:
enable-swift-package-manager: false
If you opt out, please file a bug report with details about the error, your plugins and versions, and your Xcode project files. This helps the Flutter team resolve issues before CocoaPods is completely removed. Opting out is meant as a temporary workaround, not a permanent solution — the long-term goal is full adoption of SwiftPM.
What Do Plugin Developers Need to Do?
If you maintain an iOS or macOS Flutter plugin, you must add Swift Package Manager support now. This involves creating a Package.swift file and reorganizing your source files to match the standard Swift package structure. If you already migrated during the 2025 pilot, you need one additional step: add FlutterFramework as a dependency in your Package.swift file. Detailed instructions are in the Flutter migration docs for plugin developers. Note that packages without SwiftPM support now receive lower pub.dev scores, so migrating will help your package stay visible and trusted. As the community moves forward, SwiftPM adoption is essential to avoid breaking app builds when CocoaPods support ends.
When Will CocoaPods Support Be Completely Removed?
CocoaPods is officially in maintenance mode, and its registry will become permanently read-only on December 2, 2026. After that date, no new versions or pods will be published. Flutter’s fallback to CocoaPods for unsupported plugins will be removed sometime after this date, though the exact timeline hasn’t been announced. The Flutter team strongly recommends migrating to SwiftPM now to ensure your apps continue receiving dependency updates and to avoid being blocked by a deprecated tool. Keeping an eye on the official Flutter blog and migration docs will help you stay informed about further announcements.