Flutter开发杂谈之版本升级&版本回退

前言

鉴于Flutter尚且在高速发展期sdk的版本的更新迭代难免会十分频繁,作为一个有追求的开发者你可能也在时刻紧跟Google的步伐,频繁的更新自己Flutter项目的sdk,但是会有这么个场景下又使得你不得不从新版本的sdk中回退到原先的旧版本。

  • 项目中的三方依赖库尚不支持新版本的特性,或者未做新版本sdk的适配工作
  • 项目自身原因导致升级新版本sdk后,项目无法正常打包编译

1.版本升级

升级Flutter的版本相对来说比较容易操作,直接在命令行输入:

 flutter upgrade

这个命令首先获取你的 Flutter 渠道可用的最新的 Flutter SDK 版本。接着这个命令更新你 app 依赖的每一个 package,到最新的兼容版本

1.1 Flutter Channel切换

我们都知道Flutter 官方发布一共有四个渠道,分别是 stable, beta, dev, 和 master。官方推荐我们使用 stable 渠道,因为他更稳定,各方面兼容性更好。

如果要查看你当前使用的哪个渠道,使用下面的命令:

flutter channel

如果你想切换到某一个channel上,可以使用flutter channel 加channel名称切换,如切换到dev channel上:

flutter channel dev

2 更新/回退到指定版本

2.1 使用Flutter内置命令操作

比如我想把当前项目的sdk更新到当前到最新版本 1.22.0-1.0.pre,可以直接使用如下命令:

flutter version 1.22.0-1.0.pre

或者回退到某一个指定的版本,例如下图为我把本机sdk版本从最新版回退到1.8.0的截图,操作方式跟上述一样,使用flutter version加上指定版本号

flutter version 1.8.0

在这里插入图片描述

为了保险起见,在更新或者回退完版本之前,建议大家使用flutter doctor 检查一下是否更新/回退完整,顺便看一下自己的环境是否正确升级或者回退。

总结一句话就是不论我们是升级到指定版本还是回退到指定版本都可以使用flutter version加指定版本号到方式操作

2.2 基于Git操作

由于flutter到sdk是托管在github仓库里的,所以升级降级sdk我们完全可以基于git的形式操作:比如我现在要把我本机的sdk版本回退到1.9.1+hotfix.6,我需要先找到我flutter sdk的文件路径如下:

在这里插入图片描述

然后找到flutter所有版本列表中的1.9.1+hotfix.6commit id
在这里插入图片描述

点击去可以查看具体的commit id

在这里插入图片描述

然后在你本地的flutter sdk文件目录下执行

git reset --hard 68587a0916366e9512a78df22c44163d041dd5f3

执行完之后,我们可以使用git branch确认一下,当前分支是否回退正确:
[图片上传失败...(image-168ab-1598491368102)]

上述 commit id为1.9.1+hotfix.6 的commit id,读者可根据自己的需要灵活切换到自己需要的版本上去。

推荐阅读更多精彩内容