Just My Life & My Work

[iOS] 指定Pod版本

四年前(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的功能還有很多,在此我先學用到頻率高的部分。

參考:CocoaPods之Podfile\Podfile.lock

廣告

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: