比如我現(xiàn)在安裝了一個畫k線圖的第三方庫 flutter_candlesticks: ^0.1.1 當我們升級完flutter后(升級后flutter SDK的版本為2.1.0),重新get第三方庫時發(fā)現(xiàn)以下這個錯誤
Because xxxxxx depends on flutter_candlesticks >=0.0.2 which requires SDK version >=1.23.0 <=2.0.0, version solving failed. pub get failed (1) exit code 1
這個錯誤提示說明的挺清楚的,意思就是說我們要安裝的0.1.1版本的flutter_candlesticks庫,它從0.0.2版本開始就對flutter SDK的版本有要求了,要求flutter SDK的版本必須在>=1.23.0 <=2.0.0之間,那么我們當前的flutter SDK版本是2.1.0,顯然不在這個范圍內(nèi),所以無法安裝. 我們無法控制作者做出對應的修改,然而我們坐等不知猴年馬月作者才會更新更不是個辦法.幸好現(xiàn)在大多數(shù)的第三方庫源碼都是托管在github上的,所以我們只要到github上fork一份項目,然后修改版本范圍,最后在在配置文件中指明這個庫的來源從我們指定的github上獲取就行了. 首先我們到flutter第三方庫的網(wǎng)站上找到這個庫
然后你在左邊的”關(guān)于”欄目中可以看到這個庫在github上的鏈接”Homepage(GitHub)” 點擊進入github,然后fork這個項目, 至于fork的作用這里不再多說,相當于你在github服務(wù)器端clone了一次這個項目,這也意味著你擁有了一個這個項目的副本,也就擁有了修改的權(quán)利,因為現(xiàn)在這個副本是在你的帳號下,如圖:
接下來就可以自由修改了,我們主要的目的是修改配置文件,讓他的SDK要求適應新版本,直接找到項目列表中的配置文件pubspec.yaml,在瀏覽器中直接點開這個文件
在右上角的工具欄那有個筆一樣的圖標,點擊他就能直接在服務(wù)器端編輯這個文件了,不用clone到本地. 我們找到文件中以下部分內(nèi)容
這里就是罪魁禍首了,直接修改為

即可,修改后點擊頁面底部的”commit changes”就可以提交修改了. 提交成功后,在頂部項目名稱那一行的下面一行是最后一次提交的信息,現(xiàn)在看到的應該是這樣

點擊前面的hash值,查看這次提交的完整的hash值,記住這個值,一伙項目中要用到.
github端的事已經(jīng)完成,剩下的就是修改你的項目配置文件,讓這個庫安裝的時候從我們自己的github庫上安裝,打開項目中的pubspec.yaml配置文件,正常情況下應該是長這樣的
現(xiàn)在我們要修改flutter_candlesticks庫從我們自己的github上安裝,直接照以下格式修改即可 修改后長這樣

很明顯,我們將后面的版本號去掉了,增加了git屬性,說明是從git上安裝,url指明了這個庫在github上的位置,而ref指定了要安裝的版本,就是剛才我們最后一次提交的hash值.好了,重新flutter get一下

搞定收工!
作為一個ios開發(fā)者,遇到問題的時候,有一個學習的氛圍跟一個交流圈子特別重要對自身有很大幫助,眾人拾柴火焰高 這是一個我的iOS交流群:711315161,分享BAT,阿里面試題、面試經(jīng)驗,討論技術(shù), 大家一起交流學習成長!希望幫助開發(fā)者少走彎路。
作者:月夜錄 鏈接:原文




