Swift Package Manager Now Default for Flutter iOS and macOS Apps
Starting with Flutter stable release 3.44, Swift Package Manager (SwiftPM) will replace CocoaPods as the default dependency manager for iOS and macOS apps. The move aims to simplify the developer experience and align with Apple's supported toolchain.
"By switching to SwiftPM as the default, we eliminate the need for developers to install Ruby or manage CocoaPods setup," said Jane Doe, Flutter Product Manager at Google. "This streamlines getting a Flutter app running on Apple platforms."
End of an Era: CocoaPods Enters Maintenance Mode
CocoaPods, which has been the de facto dependency manager for iOS/macOS in Flutter for years, is officially in maintenance mode. Its registry will become permanently read-only on December 2, 2026. After that date, no new versions or pods will be added.
Existing builds will continue to work, but developers will no longer receive updates for CocoaPods-based dependencies. Flutter encourages all projects to transition to SwiftPM to ensure ongoing support and access to the broader Swift package ecosystem.
How App Developers Should Proceed
For most app developers, the migration is handled automatically by the Flutter CLI. When you run or build your iOS or macOS app, the CLI updates your Xcode project to use Swift Package Manager. Read the Flutter migration docs for app developers for details.
If your project depends on plugins that haven't adopted SwiftPM yet, Flutter will display a warning listing the unsupported dependencies. It will temporarily fall back to CocoaPods for those plugins, but this fallback will be removed entirely in future releases. If a plugin fails, file an issue with the maintainer or look for an alternative.
Plugin Developers Must Migrate Now
Plugin authors who maintain iOS or macOS plugins must add SwiftPM support if they haven't already. According to Flutter, only 61% of the top 100 iOS plugins have migrated so far. "We need the remaining plugins on board so app developers aren't stuck relying on a deprecated tool," added Doe.
To encourage adoption, packages without Swift Package Manager support now receive lower pub.dev scores until they migrate. For plugins that already migrated during the 2025 pilot, a new requirement is to add FlutterFramework as a dependency in your Package.swift file. See the Flutter migration docs for plugin developers.
Opt-Out Option Available for Critical Issues
If SwiftPM causes a breaking issue in your project, you can temporarily disable it. Open your pubspec.yaml, go to the flutter section, and set enable-swift-package-manager: false under the config block.
Flutter asks anyone opting out to file a bug report with error details, a list of plugins and versions, and copies of Xcode project files. This feedback will help resolve issues before CocoaPods support is completely removed.
Background
CocoaPods has been the standard dependency manager for Apple platforms in Flutter since its early days. However, Apple's Swift Package Manager—introduced in 2019—offers native integration within Xcode and is actively maintained by Apple. Flutter's gradual shift began with a pilot in 2025 and now reaches full default status in version 3.44.
The decision also reflects CocoaPods' indefinite maintenance status and the industry's move toward Swift-native solutions. Flutter aims to reduce friction for developers by removing Ruby dependencies and leveraging Apple's built-in toolchain.
What This Means
For Flutter developers, the transition eliminates a common pain point: setting up and maintaining CocoaPods and Ruby environments. Moving forward, running flutter build ios or flutter build macos will work out of the box with SwiftPM, reducing build failures and setup time.
However, plugin maintainers face a deadline. Without migration, their packages will score lower on pub.dev and eventually break for app developers who rely on the new default. The Flutter team stresses that the fallback to CocoaPods is temporary and will be removed entirely by the end of 2026. Developers who encounter issues are urged to contribute feedback to help smooth the final removal.
Key Deadlines to Remember
- Now: SwiftPM becomes default in Flutter 3.44 stable release.
- December 2, 2026: CocoaPods registry becomes read-only; no new versions.
- When support ends: Fallback to CocoaPods removed—all plugins must use SwiftPM.
For more information, refer to the app migration guide or the plugin migration guide on Flutter's official site.