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会自动跟随切换对应的版本。

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

相关推荐
QuantumLeap丶11 分钟前
《Flutter全栈开发实战指南:从零到高级》- 25 -性能优化
android·flutter·ios
遝靑2 小时前
深入 Flutter 自定义 RenderObject:打造高性能异形滚动列表
flutter
kirk_wang2 小时前
Flutter video_thumbnail 库在鸿蒙(OHOS)平台的适配实践
flutter·移动开发·跨平台·arkts·鸿蒙
走在路上的菜鸟2 小时前
Android学Dart学习笔记第十三节 注解
android·笔记·学习·flutter
小a杰.3 小时前
Flutter跨平台开发权威宝典:架构解析与实战进阶
flutter·架构
恋猫de小郭3 小时前
Android 宣布 Runtime 编译速度史诗级提升:在编译时间上优化了 18%
android·前端·flutter
结局无敌4 小时前
Flutter性能优化实战:从卡顿排查到极致体验的落地指南
flutter·性能优化
火柴就是我5 小时前
dart 的 Lazy Iterable
flutter
走在路上的菜鸟5 小时前
Android学Dart学习笔记第十四节 库和导库
android·笔记·学习·flutter
遝靑5 小时前
Flutter 自定义渲染管线:从 CustomPainter 到 CanvasKit 深度定制(附高性能实战案例)
flutter