前言
鑒于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,讀者可根據自己的需要靈活切換到自己需要的版本上去。