現象:
最近在專案,由於打包的時候報警,與其他同事電腦保持cocoapods版本號一致(想要更新到最新的1.3.1,目前1.2.0),於是在終端開始執行一下命令:
sudo gem install cocoapods
pod --version
複製程式碼
過程看著都很正常,但是在敲一下命令看版本,發現還是原先1.2.0版本。瞬間傻了眼,不起作用~
在終端裡面繼續敲
which pod
複製程式碼
檢視一下當前pod的路徑,竟然發現剛剛安裝pod的路徑和pod執行的路徑不一樣:
兩個資料夾下面都有pod(上圖是被我刪掉pod之後的截圖),所以理所當然的想把剛剛更新的pod複製一份到which pod指定的目錄下,結果發現也是不起作用。 後續我一次又一次的指定pod的安裝目錄,安裝,解除安裝pod都不管用,安裝完版本號始終為1.2.0(┑( ̄Д  ̄)┍)。解決方案:
無奈,只好另尋他法,既然我無法指定,那能否直接全部刪除呢,全部重來? 後面嘗試著在終端敲移除命令
sudo gem uninstall cocoapods
複製程式碼
這個時候居然發現我電腦裡面有好幾個版本的cocoapods,看到第6個選項全部版本,果斷選了6。
完畢之後這個時候我電腦的就沒有任何cocoapods版本了(很棒棒)。 然後重新執行安裝命令,終於可以了。pod安裝的目錄,和現執行的pod路徑為同一個了。原因&總結:
為何會出現不同的路徑?cocoapods是用的ruby語言寫的一個工具,當初升級電腦版本ruby版本的時候,有一種方式是rvm,另一種方式是用homebrew,我有印象當時兩種方法都是用過,當時廢了不少勁把系統的ruby版本升級到了2.3。這兩種方法都處理過ruby,導致在系統裡面留下了不同的路徑。所以在我看來,由於不同方式的更新ruby,導致系統ruby路徑存在混亂,基於ruby上安裝的工具也會受到相應的影響。
出現這種現象是因為,更新pod版本的路徑和執行版本路徑不一致導致,再怎麼更新,執行pod的路徑下的為老版本都是沒有用的。在我們不知道如何指定pod執行路徑的命令或者方法的情況下,清除本機所有的有關pod的版本,重新安裝是一個最優的選擇。
文中如有不對之處還望批評指正。