Flutter's Shift to Swift Package Manager: Everything You Need to Know

By ✦ min read

Flutter is making a major change to how iOS and macOS dependencies are managed. Starting with the upcoming stable release (version 3.44), Swift Package Manager (SwiftPM) becomes the default dependency manager, replacing CocoaPods. This transition aims to simplify development, eliminate Ruby dependencies, and align with Apple's supported tooling. CocoaPods will enter maintenance mode and its registry will become read-only in December 2026, so Flutter is proactively guiding developers toward SwiftPM. Below, we answer the most common questions about this migration.

What is happening with CocoaPods in Flutter?

CocoaPods is officially entering maintenance mode. The CocoaPods registry will permanently become read-only on December 2, 2026. After that date, no new versions or pods can be added. Existing builds will still work, but no further updates or new dependencies will be available. Starting with Flutter 3.44, Swift Package Manager becomes the default dependency manager for iOS and macOS projects, meaning developers no longer need to install Ruby or CocoaPods just to run their app. The Flutter CLI will automatically convert Xcode projects to use SwiftPM, though a temporary fallback to CocoaPods remains for un migrated plugins.

Flutter's Shift to Swift Package Manager: Everything You Need to Know

Why is Flutter moving to Swift Package Manager?

The move ensures Flutter apps remain compatible with Apple's evolving ecosystem. Swift Package Manager is Apple's officially supported dependency manager, integrated directly into Xcode. It eliminates the need for Ruby-based tooling, reduces setup friction, and provides access to the broader Swift package ecosystem. CocoaPods is no longer actively maintained, and relying on it would eventually block Flutter from receiving dependency updates. By transitioning now, Flutter gives developers a clear path forward, with over 61% of the top 100 iOS plugins already migrated. This change also improves build reliability and aligns with modern iOS development practices.

How will this change affect app developers?

For most app developers, the transition is automatic. When you run or build your iOS/macOS app with Flutter 3.44+, the CLI automatically updates your Xcode project to use Swift Package Manager. You don't need to manually change anything. If your app uses plugins that haven't migrated yet, Flutter prints a warning listing the unsupported dependencies and temporarily falls back to CocoaPods for those plugins. However, fallback support will eventually be removed. If a critical plugin isn't migrated and breaks your build, you should file an issue with the plugin maintainer or find an alternative package.

Can I temporarily opt out of Swift Package Manager?

Yes, you can temporarily disable SwiftPM if it causes issues. Open your pubspec.yaml file, locate the flutter section, and add a config block with enable-swift-package-manager: false. For example:

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

This reverts your project to CocoaPods. However, this is only a temporary workaround. If you need to opt out, please file a bug report on the Flutter GitHub repository with your error details, list of plugins and versions, and Xcode project files. This helps the Flutter team resolve issues before CocoaPods support is fully removed.

What do plugin developers need to do?

Plugin authors who maintain iOS or macOS plugins must add Swift Package Manager support. This involves creating a Package.swift file and restructuring source files to follow the standard Swift package layout. If your plugin already migrated during the 2025 pilot, you now need to add FlutterFramework as a dependency in your Package.swift. Starting with Flutter 3.44, packages without SwiftPM support will receive lower pub.dev scores, encouraging migration. Currently, 61% of top iOS plugins have migrated, but the remaining 39% drag down the ecosystem. Check the official Flutter migration docs for detailed steps.

What is the timeline for CocoaPods deprecation?

CocoaPods is already in maintenance mode. The key date is December 2, 2026, when the CocoaPods Trunk registry becomes read-only. After that, no new pods or versions can be published, though existing ones remain available for builds. Flutter 3.44 marks the start of SwiftPM being the default. The fallback to CocoaPods for un migrated plugins is temporary and will be removed in a future release. Plugin developers should aim to complete migration well before the 2026 deadline to avoid breaking their users' builds.

Tags:

Recommended

Discover More

The Limits of Economic Warfare: How the Iran Conflict Reveals Waning US Sanctions PowerAdvancing to Video: How Diffusion Models Tackle Temporal SynthesisSupply Chain Attacks on Docker Hub: Lessons from the Trivy and KICS IncidentsAge Assurance Laws: What Developers Need to KnowCloud Providers Under Fire for Prioritizing Agentic AI Amid Mounting Infrastructure Failures