四年前(2014年),我已寫過Cocoapods教學:使用 CocoaPods 管理第三方套件,此時要講指定Pod版本。好的第三方套件會時常更新來與時俱進,除了新增feature之外,還有修正既有的bug。
當我們自己開發的App已經過了好幾年,想要再透過Cocospods加入新的套件,此時要考慮到舊有的套件盡可能不要更新,若逼不得已還是得更新啦⋯⋯
使用Cocoapods的好處之一就是可以指定Pod版本。像是我有遇到下一個版本的語法被改掉,太難改的話我就會先返回原先的版本。
那要怎麼寫語法呢?
可以使用邏輯運算符:
‘> 0.1‘ 高於0.1的任何版本
‘>= 0.1‘ 版本0.1或更高版本
‘< 0.1‘ 低於0.1的任何版本
‘<= 0.1‘ 版本0.1或更低的版本
除了邏輯運算符,還有一種運算符:
‘~> 0.1.2‘ 版本0.1.2和0.2版本之間的任意版本,不包括0.2和比0.2更高的版本
‘~> 0.1‘ 版本0.1和版本1.0之間的任意版本,不包括1.0和比1.0更高的版本
‘~> 0‘ 版本0或比版本0更高的版本,這基本上和不指定版本號的效果是一樣的。
~ > : 從指定版本到倒數第二位版本號升1為止。比如:
- ‘~> 1.2.1’是指1.2.1 <= 版本< 1.3.0
- ‘~>1.2’是指1.2<= 版本< 2.0
舉個例子
pod ‘AFNetworking’ //不顯式指定依賴庫版本,表示每次都獲取最新版本
pod ‘AFNetworking’, ‘2.0’ //只使用2.0版本
pod ‘AFNetworking’, ‘> 2.0’ //使用高於2.0的版本
pod ‘AFNetworking’, ‘>= 2.0’ //使用大於或等於2.0的版本
pod ‘AFNetworking’, ‘< 2.0’ //使用小於2.0的版本
pod ‘AFNetworking’, ‘<= 2.0’ //使用小於或等於2.0的版本
pod ‘AFNetworking’, ‘~> 0.1.2’ //使用大於等於0.1.2但小於0.2的版本
pod ‘AFNetworking’, ‘~>0.1’ //使用大於等於0.1但小於1.0的版本
pod ‘AFNetworking’, ‘~>0’ //高於0的版本,寫這個限制與什麼都不寫是同樣效果,皆表示使用最新版本
最後來克服一下CocoaPods pod install/pod update更新慢的問題,我的經驗是要等3-5分鐘才能更新好所有pods。
默認執行pod install或者pod update命令,會更新遠程cocopodsde spec庫。所以導致命令執行的比較慢,我們可以採用以下命令來提高更新速度,不更新CocoaPods的spec倉庫直接install/update。
pod update –verbose –no-repo-update
pod install –verbose –no-repo-update
Cocoapods的功能還有很多,在此我先學用到頻率高的部分。
隨意留個言吧:)~