文章

fvm对flutter多版本进行管理

背景说明:公司的项目还在用2.8.0版本,线上stable版本已经到了3.7.0,一直想体验一下新版本的效果,但是修改环境变量个人觉得很麻烦,正好有现成的管理工具fvm,记录一下使用方法。

  • 一、安装方法

    为了避免麻烦,这里记录一种通用方法,适用windowsmacOSLinux。方法是直接挂梯子去github上去下载压缩包,找到对应的包,然后download下来 > 解压 > 配置环境变量。这种办法的好处是以后不用了清理也好清理,没什么注册表、配置文件等乱七八糟的东西。

校验是否安装成功:

1
fvm -h
  • 二、配置说明

    这里配置分两种,第一种是对fvm这个软件的配置,包括sdk放在哪里,另外一种配置是对项目的配置。下面依次对其讲解。

    1、对fvm进行配置:

    1
    2
    3
    4
    
    # 查看当前配置情况
    fvm config
    # 设置flutter的SDK本地地址(缓存), 如:C:\dev\sdk\
    fvm config --cache-path C:\dev\sdk\
    

    完成上述配置后,可以对flutter不同版本进行下载,不建议这么下载,直接挂梯子下载会快很多。下载完后直接以版本号丢在上述路径中,这里最好文件夹命名为版本号,因为后面切命令要输入完整名字挺麻烦的。

    1
    
    fvm install 3.7.0
    

    2、对项目进行配置:

    完成上述配置后,进入对应的项目,如果要切成指定版本:

    1
    2
    3
    4
    
    # 查看对应的当前电脑所有版本
    fvm list
    # 切换到对应的版本
    fvm use 3.7.0
    

    此时会创建.fvm文件夹,记得将改文件添加到.gitignore文件中,因为此文件夹会存在对应的sdk

    3、其他注意点

    至此配置相关已经完毕,可以运行以下命令

    1
    2
    3
    
    fvm flutter {command}
    # 比如
    fvm flutter doctor
    
  • 三、其他说明

    用了Android Studio感觉这个可有可无。因为这个编辑器可以对不同的项目设置不同的环境,需要说明的是,创建新项目的时候需要去指定sdk目录下运行flutter.bat文件来进行创建

    1
    2
    
    # 进入指定sdk目录下,运行命令创建项目
    C:\\dev\\fvm\\sdk\\3.7.0\\bin> ./flutter.bat create demo
    

    因为不同的sdk创建的项目对应的jdk版本、gradle版本、以及flutterpubspec文件都不一样。这里拿3.7.02.8.0比较,2.8.0创建的项目如果用3.7.0的启动会失败,因为3.7.0用的是jdk11,而2.8.0jdk8
    此时需要修改编辑器的一些东西:
    Project Structure > Project Settings > Project > SDK 选择11;
    Project Structure > Platform Settings > SDKs 选择11;
    还要修改gradle的配置文件

    1
    2
    
    # 项目根目录/android/gradle.properties 新增jdk对应的物理地址
    org.gradle.java.home=C:\\tool\\jdk11
    

    此时才可以正常启动。否则会报找不到jdk对应的版本地址。
    个人建议采用自己配置,fvm适合那些用编辑器的,项目多的用户。

本文由作者按照 CC BY 4.0 进行授权