Flutter 3.44 Ditches CocoaPods: Swift Package Manager Takes Over

Starting with Flutter 3.44, a major shift is happening for iOS and macOS development. Swift Package Manager (SwiftPM) becomes the default dependency manager, replacing the long-standing CocoaPods. This change eliminates the need to install Ruby or manage CocoaPods, streamlining your workflow. CocoaPods itself is entering maintenance mode and will become read-only on December 2, 2026. To help you navigate this transition smoothly, we've answered the most common questions below.

1. Why is Flutter switching from CocoaPods to Swift Package Manager?

CocoaPods is officially in maintenance mode, meaning no new versions or pods will be added after December 2, 2026, when its registry becomes permanently read-only. To ensure your apps continue to receive dependency updates and gain access to Apple's modern Swift package ecosystem, Flutter is moving to Swift Package Manager—Apple's natively supported tool. This change also simplifies setup: you no longer need to install Ruby or configure CocoaPods just to run your Flutter iOS or macOS app. For plugin developers, it means aligning with Apple’s recommended standard, improving compatibility and future-proofing your packages. The Flutter team reports that 61% of the top 100 iOS plugins have already migrated, showing strong momentum toward this new default.

Flutter 3.44 Ditches CocoaPods: Swift Package Manager Takes Over

2. How does this affect app developers?

For most app developers, the transition is handled automatically by the Flutter CLI. When you run or build your app, Flutter updates your Xcode project to use SwiftPM without any manual steps. However, if your app depends on plugins that haven't yet adopted SwiftPM, Flutter will show a warning listing those unsupported dependencies. In such cases, Flutter temporarily falls back to CocoaPods for those plugins only—allowing your build to proceed while still encouraging migration. Eventually, CocoaPods support will be removed entirely, so if a plugin breaks your build, you should file an issue with its maintainer or seek an alternative. The CLI handles the heavy lifting, so you can focus on coding rather than configuration.

3. What if a plugin I rely on hasn't migrated to SwiftPM yet?

If a plugin hasn't adopted Swift Package Manager, Flutter will print a clear warning when you build, listing exactly which dependencies are unsupported. To keep things running smoothly, Flutter temporarily falls back to CocoaPods for those plugins. This fallback is only temporary, as CocoaPods support will eventually be removed. If an unsupported plugin causes a build failure, you can take two actions: first, open an issue with the plugin maintainer requesting SwiftPM support; second, look for alternative packages that already support SwiftPM. The Flutter community is actively migrating—61% of the top 100 iOS plugins are already there—so alternatives are increasingly available. Don't ignore the warnings; plan to update your dependencies well before the December 2026 deadline.

4. Can I opt out of SwiftPM if something breaks?

Yes, you can temporarily disable SwiftPM for your project. In your pubspec.yaml file, navigate to the flutter section and add the following configuration block:

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

Setting this to false reverts to CocoaPods for the current project. However, this is only a temporary workaround. The Flutter team encourages you to report any issues by filing a bug using the Flutter GitHub issue template. Include error details, a list of your plugins and versions, and copies of your Xcode project files. Your feedback helps resolve problems before CocoaPods is completely removed. Remember, this opt-out is a stopgap—not a permanent solution—so plan to migrate as soon as possible.

5. What do plugin developers need to do for this change?

If you maintain an iOS or macOS Flutter plugin, you must add SwiftPM support if you haven't already. The steps are: add a Package.swift file, move your source files to match the standard Swift package structure, and—if you migrated during the 2025 pilot—you now need to add FlutterFramework as a dependency in that file. Full migration docs are available in the Flutter documentation. To encourage adoption, packages without SwiftPM support receive lower pub.dev scores until they migrate. Currently, 61% of the top 100 iOS plugins have made the switch. By migrating, you ensure your plugin remains compatible with the latest Flutter releases and avoids being flagged as a dependency issue for app developers.

6. Will my existing builds still work after CocoaPods becomes read-only?

Yes, existing builds using CocoaPods will continue to work even after its registry becomes read-only on December 2, 2026. However, no new versions or pods will be added to the trunk after that date. This means your dependencies will no longer receive updates, which could lead to security or compatibility issues over time. To keep your apps up-to-date and to access the broader Swift package ecosystem, Flutter strongly recommends migrating to SwiftPM now. The earlier you switch, the smoother the transition—take advantage of the current grace period to move your projects and plugins.

7. What is the timeline for full removal of CocoaPods support?

While an exact date for complete removal of CocoaPods support from Flutter hasn't been announced, the registry read-only transition is a clear milestone—December 2, 2026. After that, CocoaPods will no longer receive new packages or updates. Flutter will continue to allow temporary fallback for plugins that haven't migrated, but this fallback will be removed at some point after the registry freeze. To avoid disruptions, both app and plugin developers should complete their migration well before that date. The Flutter team is actively tracking migration progress (currently 61% of top iOS plugins) and uses pub.dev scores to incentivize plugin developers. Don't wait—start testing SwiftPM compatibility in your projects today.

Tags:

Recommended

Discover More

Python 3.14 Final Release Candidate Ships: Stable ABI Locked, Launch Set for October10 Critical Facts About the Weaver E-cology RCE Vulnerability (CVE-2026-22679) Under Active AttackHow Russian GRU Hackers Hijacked Routers to Steal OAuth Tokens: A Technical BreakdownEverything About Why Secure Data Movement Is the Zero Trust Bottleneck Nobody...A Complete Guide to Fortifying Your LLM Against Prompt Injection with StruQ and SecAlign