Skip to content
观看视频建议直接前往B站, 此处播放器仅供预览, 不支持字幕且清晰度较低

Flutter 的 SDK 本质上就是个 Git 仓库,这在之前的文档中已经提及过。相关版本本质上就是 Git 标签 (tag),即通过切换到相应标签就可以切换对应的 Flutter 版本。

例如通过git checkout命令切换标签,而后运行flutter doctor等命令,就会自动更行到标签所对应的版本。如果 Flutter 发布了新版本,可通过git fetchgit pull命令将最新的内容拉取到本地,然后再切换到最新版本所在的标签。

版本命名规范和所在分支

这里的版本不仅包含稳定版本,还包含预发布版本。正式版本的标签通常命名为1.2.3这样的格式,而预发布版本的标签通常包含额外的后缀名称,例如1.2.3-4.5.pre。其中这个pre就是prerelease的缩写,是预发布的意思。

这些版本的标签分别位于不同的分支 (branch) 上,常见的分支有稳定分支stable,和预发布分支beta。Flutter 发展至今已经有非常多的版本,在查找版本标签时,建议先筛选相关的分支,这样找起来会更快一些。最新的稳定版通常位于stable分支的最新位置,通过直接切换到stable分支也可以更新到最新的稳定版。

更改版本后会自动下载资源

FlutterSDK 这个 Git 仓库并非所需资源的全部,安装好 SDK 后初次通过flutter doctorflutter --version等命令检查时,会自动开始下载当前平台所需要的资源。在每次切换版本时也会进行这样的操作,因为这些资源与版本是相关的。

这些资源包括:对应版本的 DartSDK 和当前平台所需的资源文件。所谓的当前平台不仅包括这台电脑所对应的 Windows, macOS 或 Linux 这样的桌面端操作系统,也包括了所支持的 Android 或 iOS 虚拟机以及如果配置了 Chrome 或 Windows 上的 Edge 浏览器,还会下载网页开发所需要的相关资源。

这些资源通常会被存放在 FlutterSDK 所在仓库的bin/cache目录下,这个目录是被 Git 忽略的,其中的内容由 Flutter 自动管理。

更新到最新版本的命令

通过flutter upgrade命令即可更新到最新的稳定版,这相当于是自动执行git pull命令,和通过 Git 命令进行操作的效果是相同的,只是这种封装好的命令对于不太懂 Git 的开发者更容易接受,其操作也更佳简便快捷。

使用镜像的坑

Flutter 的镜像中 SDK 的 Git 仓库和资源文件 (flutter infra) 是分开的,这两个资源的更新频率可能不同。并且如果直接使用的是 GitHub 上官方提供的的 SDK 仓库 (大部分时候网速还是可以接受的),而资源文件则是通过镜像(源部分资源文件托管在谷歌服务器上访问受限),那么这两个资源的更新时间就更不同了。

如果 SDK 已经更新,但资源文件的镜像还没有更新,就会出现找不到资源的报错。这种情况通常等几天就会恢复正常。具体等待时间和所使用镜像的更新频率有关。