Flutter多版本管理 — FVM

简介

FVM(Flutter Version Management),官网介绍为:简单、强大、灵活的工具来理多个Flutter SDK版本。

帮助开发者解决了:

  • 需要同时使用多个Flutter SDK
  • SDK测试需要频繁切换分支
  • 分支切换速度慢,且需要反复重装(典型的使用git来切换)
  • 难以管理应用所使用的最新SDK版本
  • Flutter大版本更新需要对整个应用进行迁移
  • 团队内部开发环境会出现不一致的情况

使每个项目工程都可以对应不同版本的Flutter。

安装

MacOS

使用Homebrew来安装,若未安装,可使用以下命令傻瓜式安装:

ruby 复制代码
// Homebre国内镜像安装,推荐使用阿里镜像源
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

安装FVM

bash 复制代码
brew tap leoafarias/fvm
brew install fvm

卸载FVM

bash 复制代码
brew uninstall fvm
brew untap leoafarias/fvm

就OK了。

Windows

安装方法一

通过pub来全局安装fvm

csharp 复制代码
dart pub global activate fvm

这点官方给了⚠️:

This is not recommended if you plan on using FVM to manage your global Flutter install.

--- 如果您计划使用FVM来管理您的全局Flutter安装,则不建议这样做。

安装方法二

通过choco来安装,choco是一个包管理工具,类似于Mac的brew。

arduino 复制代码
// 查看是否安装
choco -v
arduino 复制代码
// 更新choco
choco upgrade chocolatey

安装FVM

复制代码
choco install fvm

安装过程遇到询问直接输入 Y 即可。

常用命令

c 复制代码
// 查看版本
fvm --version

// 查看所有远程版本
fvm releases

// 需要安装的版本
// 也可以从官网下载指定版本压缩包,并将其解压到 versions 文件夹中
fvm install 3.27.1

// 卸载flutter版本
fvm remove 3.27.1

// 查看本地已装的版本;若在项目目录下执行此命令,可获取当前的使用版本
fvm list

// 指定工程要使用的版本,在程序根目录或开发工具的终端运行命令
// 会生产一个.fvm文件夹在项目中,在git的忽略文件中,不会影响项目的git管理。
fvm use 3.7.10

// 使用最新的稳定通道版本
fvm use stable

// 设置全局版本
fvm global 3.7.10

// 设置fvm配置
// 若更改默认的缓存文件位置: fvm config --cache-path <CACHE_PATH> 
fvm config

// 代理dart命令
fvm dart

// 通过删除FVM目录销毁FVM缓存
fvm destroy

// 显示有关环境和项目配置的信息
fvm doctor

// 使用配置的Flutter SDK执行脚本
fvm exec

// 在不同的项目风格之间切换
fvm flavor

// 在Flutter版本上生成命令
fvm spawn

// 使用指定 SDK 版本运行构建
fvm spawn 3.13.9 flutter build

// 使用不同版本的 SDK 运行测试
fvm spawn 2.2.3 flutter test

// 将之前安装的flutter加到fvm目录中
// version 为版本号
fvm import [version]

// 代理flutter命令,当前项目运行Flutter相关命令
fvm flutter --version
fvm flutter doctor
fvm flutter clean
fvm flutter pub get
fvm flutter run 
...

项目工程设置

打开对应的项目工程,进入IDE的设置中,选择Flutter,并选择对应的版本,最后Apply即可,Dart会自动跟随切换对应的版本。

接下来就可以愉快地开发了!!

相关推荐
左手厨刀右手茼蒿2 小时前
Flutter 三方库 all_lint_rules_community 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、严谨、基于全量社区 Lint 规则的工业级静态代码质量与安全审计引擎
flutter·harmonyos·鸿蒙·openharmony·all_lint_rules_community
雷帝木木2 小时前
Flutter for OpenHarmony:Flutter 三方库 cbor 构建 IoT 设备的极致压缩防窃协议(基于标准二进制 JSON 表达格式)
网络·物联网·flutter·http·json·harmonyos·鸿蒙
Zender Han2 小时前
Flutter Bloc / Cubit 最新详解与实战指南(2026版)
android·flutter·ios
王码码20352 小时前
Flutter 三方库 servicestack 的鸿蒙化适配指南 - 实现企业级 Message-based 架构集成、支持强类型 JSON 序列化与跨端服务调用同步
flutter·harmonyos·鸿蒙·openharmony·message-based
里欧跑得慢2 小时前
Flutter 三方库 jsonata_dart 的鸿蒙化适配指南 - 实现高性能的 JSON 数据查询与转换、支持 JSONata 表达式引擎与端侧复杂数据清洗
flutter·harmonyos·鸿蒙·openharmony·jsonata_dart
Justin在掘金6 小时前
Flutter Riverpod 状态管理深入分析
flutter
Justin在掘金7 小时前
Flutter BLoC 状态管理框架深入分析
flutter
weixin_443478517 小时前
flutter组件学习之Cupertino 组件(iOS风格)
学习·flutter·ios
国医中兴8 小时前
Flutter 三方库 superclass 的鸿蒙化适配指南 - 支持原生高性能类构造、属性代理与深层元数据解析实战
flutter·harmonyos·鸿蒙·openharmony
Swift社区8 小时前
Flutter 迁移鸿蒙 ArkUI 的真实成本
flutter·华为·harmonyos