Flutter Embraces Swift Package Manager: A New Era for iOS and macOS Development

By ✦ min read

In a significant shift for mobile and desktop development, the upcoming stable release of Flutter 3.44 will adopt Swift Package Manager (SwiftPM) as the default dependency manager for iOS and macOS projects. This move effectively phases out the longtime standard CocoaPods, streamlining setup and eliminating the need for Ruby dependencies. Here's a comprehensive look at what this transition means and how to prepare.

The Big Change

Starting with Flutter 3.44, any new or existing project that runs on iOS or macOS will automatically use SwiftPM to manage its dependencies. CocoaPods, which has been the go‑to solution for years, is now in official maintenance mode. Its registry will become permanently read‑only on December 2, 2026. After that date, no new versions or pods will be added to the trunk, though existing builds will still compile.

Flutter Embraces Swift Package Manager: A New Era for iOS and macOS Development

This transition aligns Flutter with Apple’s supported dependency ecosystem. For developers, it means fewer configuration headaches and faster integration with the broader Swift package universe.

For App Developers

If you’re building an app with Flutter, the migration process is largely handled by the CLI. When you run or build your iOS or macOS target, the Flutter tool automatically updates your Xcode project to reference SwiftPM instead of CocoaPods. For detailed guidance, see the Flutter migration docs for app developers.

Handling Unsupported Plugins

Some plugins may not yet have adopted SwiftPM. In that case, Flutter will print a warning listing exactly which dependencies are unsupported. For those plugins, Flutter will temporarily fall back to CocoaPods to keep your build running. However, this fallback is only a stopgap—CocoaPods support will eventually be removed entirely.

If a plugin you rely on hasn’t migrated and breaks your build, you should:

Opting Out Temporarily

Migrations can sometimes cause unexpected issues. If SwiftPM leads to a critical error in your project, you can disable it temporarily:

  1. Open your pubspec.yaml file.
  2. Navigate to the flutter section.
  3. Under the config block, set enable-swift-package-manager to false.

Example:

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

If you choose to opt out, please file a bug report on Flutter’s GitHub and include the 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 fully removed.

For Plugin Developers

For those who maintain iOS or macOS plugins, the transition requires active preparation. You must add SwiftPM support if you haven’t already. According to recent data, 61% of the top 100 iOS plugins have already migrated. The remaining plugins are critical: without them, app developers may remain dependent on a deprecated tool.

Migration Requirements

To add SwiftPM support to your plugin, follow these steps:

  1. Add a Package.swift file to your plugin’s directory.
  2. Restructure your source files to match the standard Swift package layout (e.g., Sources/YourPluginName/).
  3. If you already migrated during the 2025 pilot, you must add FlutterFramework as a dependency in your Package.swift file.

For complete instructions, check the Flutter migration docs for plugin developers.

Impact on Pub.dev Scores

To encourage adoption, packages without SwiftPM support will now receive lower pub.dev scores until they migrate. This scoring change directly affects discoverability and trust, so plugin authors are strongly urged to prioritize this update.

Looking Ahead

The December 2026 deadline for CocoaPods registry changes is not imminent, but the Flutter team recommends migrating as soon as possible. Starting with Flutter 3.44, default builds will use SwiftPM; the legacy fallback is intended only for troubleshooting. By updating your workflows and plugins now, you ensure smooth continued development and access to the latest Swift package ecosystem.

Embrace the change—your future builds will be cleaner, faster, and more aligned with Apple’s modern toolchain.

Tags:

Recommended

Discover More

How Cloudflare's 'Code Orange: Fail Small' Project Strengthened Network ReliabilityUnified Cloud Visibility with HCP Terraform and Infragraph: Q&A GuideExploring Gemini is rolling out to cars with Google built-inExploring Python 3.15.0 Alpha 4: New Features and Developer InsightsHow Amazon Developers Can Now Use Claude Code and Codex for Agentic Coding