前言
鉴于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.6
的commit id
在这里插入图片描述
点击去可以查看具体的commit id 在这里插入图片描述
然后在你本地的flutter sdk文件目录下执行
git reset --hard 68587a0916366e9512a78df22c44163d041dd5f3
执行完之后,我们可以使用git branch确认一下,当前分支是否回退正确:
[图片上传失败...(image-168ab-1598491368102)]
上述 commit id为1.9.1+hotfix.6 的commit id,读者可根据自己的需要灵活切换到自己需要的版本上去。
网友评论