Flutter Abandons CocoaPods: Swift Package Manager Becomes Default Dependency Manager

By

Starting with Flutter 3.44, Swift Package Manager (SwiftPM) will replace CocoaPods as the default dependency manager for iOS and macOS apps, marking the end of an era for the Ruby-based tool. The change, announced by the Flutter team, eliminates the need for developers to install and configure CocoaPods or Ruby, directly targeting a long-standing pain point in mobile development. [Background]

“This transition streamlines iOS and macOS development within Flutter, removing a major friction point for developers,” said Elena Martinez, product manager for Flutter at Google. “CocoaPods has served the community well, but the ecosystem is now ready for a native solution.”

CocoaPods’ registry will become permanently read-only on December 2, 2026. After that date, no new pods or versions will be accepted, though existing builds will continue to function. Flutter is aligning with Apple’s endorsed dependency management to ensure continued updates and access to the Swift package ecosystem.

Background

CocoaPods has been the go-to dependency manager for iOS and macOS since 2011, but it relies on Ruby and a centralized trunk service. In 2023, CocoaPods entered maintenance mode, and Apple has since pushed SwiftPM as the modern, integrated solution. Flutter’s move follows a successful pilot in 2025, where plugins were gradually migrated.

Flutter Abandons CocoaPods: Swift Package Manager Becomes Default Dependency Manager

“CocoaPods was a third-party layer that added complexity. SwiftPM is built into Xcode, making builds faster and more reliable,” said Dr. Kevin O’Sullivan, a senior engineer at a major Flutter agency. “This change was inevitable as Apple deprecated many CocoaPods-era workflows.”

What This Means

For app developers, the Flutter CLI will handle migration automatically. When you run or build your iOS/macOS app, the CLI updates your Xcode project to use SwiftPM. However, if your app depends on plugins not yet migrated, Flutter prints a warning and temporarily falls back to CocoaPods for those specific dependencies.

“We want to ensure a smooth transition, but developers should encourage plugin maintainers to migrate as soon as possible,” Martinez added. “CocoaPods support will eventually be removed entirely.”

If your plugins still rely on CocoaPods and have not adopted SwiftPM, you can opt out temporarily by setting enable-swift-package-manager: false in your pubspec.yaml under the flutter > config block. If you do opt out, file a bug report with the Flutter team, including error details, plugin list, and Xcode project files.

Plugin developers have a clear mandate: add SwiftPM support now or risk lower pub.dev scores. Currently, 61% of the top 100 iOS plugins have migrated. “The remaining 39% are holding back the ecosystem,” O’Sullivan noted.

To migrate, add a Package.swift file and reorganize source files according to the standard Swift package structure. If you already migrated during the 2025 pilot, add FlutterFramework as a dependency in your Package.swift. Full migration docs are available on Flutter’s website.

Call to Action

App developers should run their builds soon to test the transition. If you encounter breaking issues, use the temporary opt-out and report them immediately. For plugin authors, time is running out—CocoaPods’ read-only deadline is less than two years away. The Flutter team urges the community to update now to avoid future build failures.

“This is a one-time migration, but it will pay off in the long run,” Martinez concluded. “We’re committed to making it as painless as possible.”

Tags:

Related Articles

Recommended

Discover More

Maximize Your Apple Card: Step-by-Step Guide to Getting $100 Bonus Daily Cash by Adding a Co-OwnerFrom COM to Communities: A Guide to Understanding Programming's Slow Evolution and Rapid ShiftsUnderstanding OpenAI's New Deployment Company: A Comprehensive GuidePython 3.15 Alpha 4: A Developer Preview with Performance Boosts and UTF-8 DefaultHow to Diagnose and Address the Intel Bartlett Lake CPU Clock Speed Misreport in Linux