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 小时前
vscode flutter 插件, vscode运行安卓项目,.gradle 路径配置
ide·vscode·flutter
程一个大前端3 小时前
【Flutter深度解析】Navigator高阶用法全攻略
flutter
louisgeek12 小时前
Flutter 动画之 Explicit 显式动画
flutter
早起的年轻人12 小时前
Flutter BigInt 是用于处理任意精度整数的特殊数字类型,专为解决超大整数运算需求而设计
flutter
leluckys12 小时前
flutter 专题 六十六 Flutter Dio包网络请求抓包解决方案
flutter
爱吃鱼的锅包肉12 小时前
Flutter路由模块化管理方案
前端·javascript·flutter
李新_14 小时前
我们封装了哪些好用的Flutter Mixin
android·flutter
leluckys15 小时前
flutter 专题 六十三 Flutter入门与实战作者:xiangzhihong8Fluter 应用调试
前端·javascript·flutter
又菜又爱coding15 小时前
Flutter异常Couldn‘t find dynamic library in default locations
flutter
帅次15 小时前
Flutter Expanded 与 Flexible 详解
android·flutter·ios·小程序·webview