Upgrading Flutter? Here’s Everything You Need to Do
Keeping your Flutter project up to date is essential for better performance, security, bug fixes, and access to the latest features. However, simply running flutter upgrade isn’t enough. A complete upgrade also includes updating your project dependencies and ensuring your existing project structure matches the latest Flutter templates.
In this guide, we’ll walk through the entire Flutter upgrade process—from updating the Flutter SDK to upgrading packages and refreshing an existing project.
Step 1: Update the Flutter SDK
First, upgrade your Flutter SDK to the latest stable version.
flutter upgrade
Verify the installed version:
flutter --version
Then check whether your development environment is healthy.
flutter doctor
Resolve any issues reported before moving to the next step.
Step 2: Clean the Project
Cleaning removes old build artifacts that may cause unexpected issues after an SDK upgrade.
flutter clean
Step 3: Update Project Dependencies
After updating Flutter, your project dependencies may still be using older versions.
First, fetch dependencies:
flutter pub get
Check which packages have newer versions available:
flutter pub outdated
You’ll typically see three version columns:
- Current – the version currently installed.
- Upgradable – the newest version allowed by your current version constraints.
- Resolvable – the newest version your dependency graph can resolve.
If you only run:
flutter pub upgrade
Flutter upgrades packages only within the version constraints defined in your pubspec.yaml.
If you want to upgrade to the latest compatible major versions (not just the versions locked in pubspec.lock), run:
flutter pub upgrade --major-versions
This command updates your dependency constraints where possible and resolves packages to newer major releases. Because major versions can introduce breaking changes, review your code and package changelogs after upgrading.
Finally, fetch the updated dependencies:
flutter pub get
Step 4: Refresh an Existing Project
One of the most overlooked steps after upgrading Flutter is updating the platform project files.
Flutter occasionally introduces improvements to Android, iOS, Web, Windows, macOS, and Linux project templates. Existing projects don’t automatically receive these changes.
To update your project with the latest template files, run:
flutter create .
The command regenerates missing or outdated platform configuration files while preserving your Dart source code.
This helps bring your project in line with the latest Flutter tooling and can resolve issues related to:
- Android Gradle updates
- Kotlin configuration changes
- iOS project settings
- Platform-specific build scripts
- Generated configuration files
Tip: Review the generated changes before committing them to version control, especially if you’ve customized native platform files.
Step 5: Analyze Your Project
After upgrading dependencies and project files, analyze your code.
flutter analyze
Fix any warnings or errors, particularly those caused by breaking API changes in updated packages.
Step 6: Run Your Tests
If your project includes tests, run them to ensure everything still works.
flutter test
Testing after upgrades helps catch regressions before they reach production.
Step 7: Run the Application
Finally, launch your app.
flutter run
Verify that:
- The application builds successfully.
- There are no runtime exceptions.
- All core features work as expected.
- Platform-specific functionality still behaves correctly.
Optional: Upgrade Individual Packages
If you prefer upgrading one dependency at a time, you can use:
flutter pub add package_name
or specify a version:
flutter pub add package_name:^latest_version
This approach gives you more control over dependency upgrades in larger projects.
Common Upgrade Workflow
Here’s the complete upgrade workflow in one place:
flutter upgrade
flutter doctor
flutter clean
flutter pub get
flutter pub outdated
flutter pub upgrade --major-versions
flutter create .
flutter analyze
flutter test
flutter run
Best Practices
- Commit your code before starting any upgrade.
- Upgrade the Flutter SDK before upgrading packages.
- Review breaking changes in package release notes.
- Test your application after every major upgrade.
- Run
flutter create .after significant Flutter SDK upgrades to keep platform files in sync. - Keep your dependencies updated regularly instead of waiting several months between upgrades.
Conclusion
A Flutter upgrade is more than updating the SDK. A healthy upgrade process also includes refreshing your dependencies, regenerating platform project files, analyzing your code, and thoroughly testing your application.
Following this workflow helps keep your Flutter projects compatible with the latest tooling, reduces build issues, and ensures you can take advantage of new Flutter features with confidence.