Flutter 3.44 Makes Swift Package Manager the Default: What Developers Should Do

By • min read

Introduction

Flutter’s latest stable release, version 3.44, marks a significant shift in iOS and macOS dependency management. Starting with this release, Swift Package Manager (SwiftPM) becomes the default tool for managing dependencies, replacing the long-standing CocoaPods. This move simplifies the development workflow by eliminating the need for Ruby and CocoaPods installations, while aligning with Apple’s preferred ecosystem. The transition is gradual, but developers need to understand the timeline, benefits, and steps to ensure their projects remain compatible.

Flutter 3.44 Makes Swift Package Manager the Default: What Developers Should Do

The Shift from CocoaPods to Swift Package Manager

Why the Change?

CocoaPods has been a staple for iOS developers for years, but its development has slowed. The CocoaPods registry is officially in maintenance mode, and no new versions or pods will be added to the trunk after December 2, 2026. After this date, the registry will become permanently read-only. While existing builds will still function, dependency updates will cease. To ensure continued access to the Swift package ecosystem and to provide a more reliable, Apple-supported solution, the Flutter team has decided to adopt Swift Package Manager as the default.

Timeline and Impact

Starting with Flutter 3.44, all new projects will use SwiftPM by default. Existing projects will be migrated automatically by the Flutter CLI when you run or build your app. CocoaPods will still be available as a fallback for unsupported plugins, but this bridge is temporary. The goal is to achieve full SwiftPM adoption before the CocoaPods registry goes read-only.

For App Developers: Seamless Migration

Automated Migration via CLI

App developers don’t need to manually reconfigure their Xcode projects. When you run flutter run or build your iOS or macOS app, the Flutter CLI automatically updates your Xcode project to use Swift Package Manager. This process is designed to be transparent. For detailed instructions, refer to the Flutter migration docs for app developers.

Handling Unsupported Plugins

If your app relies on plugins that haven’t yet adopted Swift Package Manager, Flutter will print a warning during the build. The warning will list exactly which plugins are still using CocoaPods. In these cases, Flutter temporarily falls back to CocoaPods for those specific dependencies. However, because CocoaPods support will be completely removed in the future, you should proactively address this. If a plugin breaks your build, file an issue with the plugin’s maintainer requesting SwiftPM support, or consider finding an alternative package.

Temporary Opt-Out Option

If Swift Package Manager causes a breaking issue in your project, you can temporarily disable it. Open your pubspec.yaml file, navigate to the flutter section, and set enable-swift-package-manager to false under the config block:

flutter:
  config:
    enable-swift-package-manager: false

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 team resolve issues before CocoaPods support is fully removed.

For Plugin Developers: Mandatory Adoption

Current Adoption Status

As of this announcement, 61% of the top 100 iOS plugins have already migrated to Swift Package Manager. The remaining 39% need to catch up to prevent app developers from being stuck with a deprecated tool. To encourage adoption, packages without SwiftPM support now receive lower pub.dev scores. This scoring penalty will persist until migration is complete.

How to Add Swift Package Manager Support

If you maintain a plugin and haven’t migrated yet, here’s what to do:

  1. Add a Package.swift file to the root of your plugin directory.
  2. Reorganize source files to match the standard Swift package structure (e.g., place iOS sources in Sources/PluginName).
  3. Define dependencies in the Package.swift file, including any that were previously managed by CocoaPods.

New Requirement: FlutterFramework Dependency

For those who already migrated during the 2025 pilot program, there is an important update: you must now add FlutterFramework as a dependency in your Package.swift file. This ensures proper integration with the Flutter runtime. Skipping this step may cause build failures. For full details, consult the Flutter migration docs.

Conclusion and Next Steps

Flutter 3.44’s switch to Swift Package Manager as the default dependency manager is a welcome simplification for most developers. It removes the overhead of managing CocoaPods and Ruby installations, while aligning with Apple’s future direction. App developers can rely on the automated migration, but should monitor warnings for unsupported plugins and file issues when necessary. Plugin developers must prioritize adding SwiftPM support to avoid penalties and ensure their packages remain viable. The CocoaPods registry will become read-only in December 2026, so the time to act is now. Stay up-to-date with the Flutter documentation for any further changes.

Recommended

Discover More

Breaking: 1 in 7 Teachers Set to Abandon Classroom This Fall – Exodus Reaches Crisis LevelNew Framework Aims to Pinpoint Failures in AI Multi-Agent SystemsMastering Pull Request Performance: GitHub’s Strategies for Speedy Code ReviewsInside the DeepMind-EVE Online Partnership: AI Research Through Player-Driven SystemsWarhorse Studios Remains Tight-Lipped on Lord of the Rings RPG Rumors, Vows Next Project Will Be 'True to Our Colours'