^符號設計的本意是獲取當前大版本下的最新版本插件,以此來獲得最好的支持延旧。但是最近在Jenkins上打包時發(fā)現(xiàn)存在插件小版本不兼容的問題谋国,導致功能無法正常使用,且非常難定位到捌蚊,浪費大量時間近弟。
該問題只在第一次運行項目時才會遇到,本地開發(fā)環(huán)境由于已經(jīng)緩存了一個正常版本窗宦,不會再獲取最新的版本插件
問題出現(xiàn)的本質(zhì)是:插件開發(fā)人員缺乏對插件的版本號管理二鳄,沒有考慮同一版本兼容性問題,若存在不兼容情況時應該升級大版本號以此來提醒使用者選擇更新
目前遇到問題的插件
- dio: 3.0.9 -> 3.0.10订讼,導致后臺接口請求參數(shù)錯誤
- get: 4.1.4 -> 4.3.8,直接代碼報錯寄纵,打包后部分路由無法跳轉(zhuǎn)
建議
程序應該保證所有的變量可控脖苏,建議放棄^符號改為指定具體版本,避免插件更新導致環(huán)境出現(xiàn)問題
版本二
時間:2022年01月24日16:20:22
- flutter_screenutil自動升級版本導致頁面異常問題
最近使用之前部署的Jenkins給App打包棍潘,發(fā)現(xiàn)新打包的App點擊登錄頁面白屏的情況,有過之前插件自動升級的經(jīng)驗山宾,這次快速排查了項目在服務器和本地第三方sdk的引用版本
使用命令flutter pub deps:
第三方插件引用版本.png
比較發(fā)現(xiàn)flutter_screenutil出現(xiàn)小版本自動升級情況鳍徽,本地修改版本運行app確認是該插件導致的問題。
插件版本比較.png
檢查插件項目Github绷杜,在issue發(fā)現(xiàn)已提出該問題,插件開發(fā)者推薦使用調(diào)整初始化方式解決該問題
issue.png
但這種情況對我們的項目是有非常大的潛在風險的圾结。這里再次重申齿诉,F(xiàn)lutter插件的引入一定要采用指定版本的模式,避免由于插件小版本的自動升級導致項目運行異常的問題粤剧!