iOS Swift Package Manager (SPM) Integration

Flutter provides the Swift Package Manager start from Flutter SDK 3.24+. In order to migrate the existing project or to enable the support of SPM in new project, refer the official Flutter documentation for the SPM.


How to turn on Swift Package Manager

Flutter's Swift Package Manager support is turned off by default. To turn it on:

1. Upgrade to the latest Flutter SDK (requires Flutter 3.24+):

flutter upgrade

2. Turn on the Swift Package Manager feature::

flutter config --enable-swift-package-manager

Using the Flutter CLI to run an app migrates the project to add Swift Package Manager integration. This makes your project download the Swift packages that your Flutter plugins depend on. An app with Swift Package Manager integration requires Flutter version 3.24 or higher. To use an older Flutter version, you will need to remove Swift Package Manager integration from the app.

Flutter falls back to CocoaPods for dependencies that do not support Swift Package Manager yet.

How to add Swift Package Manager integration

Add to a Flutter app - Automatically

Once you turn on Swift Package Manager, the Flutter CLI tries to migrate your project the next time you run your app using the CLI. This migration updates your Xcode project to use Swift Package Manager to add Flutter plugin dependencies.

To migrate your project:

  1. Turn on Swift Package Manager.
  2. Run the iOS app using the Flutter CLI.

If your iOS project doesn't have Swift Package Manager integration yet, the Flutter CLI tries to migrate your project and outputs something like:

$ flutter run
Adding Swift Package Manager integration...

The automatic iOS migration modifies the ios/Runner.xcodeproj/project.pbxproj and ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme files.

  1. If the Flutter CLI's automatic migration fails, follow the steps in add Swift Package Manager integration manually.