使用CocoaPods進(jìn)行第三方資源管理
一年前在外包公司呆過(guò),驚嘆于Cocoa Pods的強(qiáng)大,也讓我有不少迷惑的地方。之前寫(xiě)過(guò)一篇Cocoa Pods使用的博客,詳細(xì)列出了通過(guò)Unix終端命令搭建環(huán)境的步驟,發(fā)布在新浪sae搭建的WordPress博客平臺(tái),但是因?yàn)闆](méi)有續(xù)費(fèi),現(xiàn)在找不到了。
近半年來(lái)在新公司,驚嘆于老大進(jìn)行項(xiàng)目依賴(lài)關(guān)系的處理,我老大主要是對(duì)iOS平臺(tái)的Xcode工具中的Workspace、Project、Target以及各種靜態(tài)庫(kù)之間的關(guān)系理解的比較透徹,所以他這方面的操作很牛逼。其實(shí)跟老大學(xué)習(xí)這方面的東西,基本能夠滿(mǎn)足項(xiàng)目資源管理的需求了,但是為什么我還要重新整理Cocoa Pods,總結(jié)搭建Cocoa Pods環(huán)境的博客呢?我想主要有以下幾點(diǎn):
(1)看很多的iOS博客教程,基本初始的步驟就是要有Cocoa Pods環(huán)境;
(2)Cocoa Pods確實(shí)是一個(gè)方便的工具,特別是在敏捷開(kāi)發(fā)多個(gè)項(xiàng)目的時(shí)候,一個(gè)工具重復(fù)使用,大量節(jié)約時(shí)間;
(3)可以及時(shí)更新github上面的開(kāi)源庫(kù)代碼,只要改動(dòng)Podfile文件中對(duì)應(yīng)的開(kāi)源庫(kù)的版本號(hào)即可。
一、Cocoa Pods簡(jiǎn)介
Cocoa Pods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方資源的工具,它的項(xiàng)目源代碼在Github上面管理,得益于活躍的Github開(kāi)發(fā)者社區(qū)大神們的不斷維護(hù),從2011年8月該項(xiàng)目啟動(dòng)以來(lái),它保持活躍更新。開(kāi)發(fā)iOS項(xiàng)目不可避免地要使用第三方開(kāi)源庫(kù),CocoaPods的出現(xiàn)使得我們可以節(jié)省設(shè)置和更新第三方開(kāi)源庫(kù)的時(shí)間。
在我們有了CocoaPods這個(gè)工具之后,只需要將用到的第三方開(kāi)源庫(kù)放到一個(gè)名為Podfile的文件中,然后在命令行執(zhí)行$pod install命令,CocoaPods就會(huì)自動(dòng)將這些第三方資源庫(kù)的源代碼下載下來(lái),并且為當(dāng)前的工程設(shè)置好響應(yīng)的系統(tǒng)依賴(lài)和編譯參數(shù)。
二、Cocoa Pods的安裝
(1)安裝
安裝的方式非常簡(jiǎn)單,Mac下已經(jīng)再帶了ruby,只要使用ruby的gem命令就可以安裝了。打開(kāi)Mac終端工具,在終端運(yùn)行下面的命令,
- [sudo] gem install cocoapods
- pod setup
說(shuō)明,上面的[sudo]可以省略,這兩個(gè)步驟都是進(jìn)行網(wǎng)絡(luò)請(qǐng)求的過(guò)程,所以需要一定的等待時(shí)間。
(2)更新
如果我們修改了Podfile文件,那么就需要更新CocoaPods,使用下面的ruby的gem命令來(lái)更新,
(3)查找第三方庫(kù)
可以使用pod search + lib_name來(lái)搜索第三方庫(kù),查看版本,如下命令所示
說(shuō)明:SDWebimage是一個(gè)用于圖片緩存的開(kāi)源庫(kù),是對(duì)UIImageView類(lèi)的擴(kuò)展。
三、Cocoa Pods的使用
現(xiàn)在我在Desktop/develop文件夾下面新建了一個(gè)項(xiàng)目,參考CocoaChina中的一個(gè)教程,就是一個(gè)完整的天氣App,項(xiàng)目名稱(chēng)為SimpleWeather,那么接下來(lái)這樣操作使用Cocoa Pods,
(1)進(jìn)入項(xiàng)目SimpleWeather.project所在的文件夾,在終端輸入以下命令,
- cd Desktop/develop/SimpleWeather
(2)在該目錄中,通過(guò)Vim新建Podfile
- vim Podfile
(3)通過(guò)i(insert模式),插入如下的語(yǔ)句,
- platform :ios, '7.0'
- pod 'Mantle'
- pod 'LBBlurredImage'
- pod 'TSMessages'
- pod 'ReactiveCocoa'
這樣就指定了第三方資源的iOS版本、開(kāi)源庫(kù)主要包括:Mantle、LBBlurredImage、TSMessages、ReactiveCocoa,這些都不重要,這里只是示范而已。
輸入完成以后退出vim并保存,先Esc然后輸入:wq,表示寫(xiě)入并退出。
(4)在終端輸入$pod install,
- pod install
初始化pod也是一個(gè)網(wǎng)絡(luò)請(qǐng)求下載的過(guò)程,稍等一段時(shí)間,如果輸入的資源名稱(chēng)沒(méi)有問(wèn)題,那么過(guò)一段時(shí)間就會(huì)在終端得到初始化成功的提示。
四、通過(guò)WorkSpace來(lái)進(jìn)行項(xiàng)目代碼的編寫(xiě)
進(jìn)入項(xiàng)目文件夾,可以看見(jiàn)一個(gè)后綴名未.workspace的文件,雙擊打開(kāi)。從現(xiàn)在開(kāi)始我們通過(guò)來(lái)SimpleWeather.xcworkspace管理項(xiàng)目、編寫(xiě)代碼,而不是之前的SimpleWeather.xproj,打開(kāi)workspace文件,Xcode項(xiàng)目的文件結(jié)構(gòu)如下圖所示,
***個(gè)箭頭所指的就是SimpleWeather項(xiàng)目;第二個(gè)箭頭就是Pods幫我們生成的項(xiàng)目,它來(lái)管理需要的資源庫(kù);第三個(gè)箭頭指向的就是Podfile里面指定的第三方開(kāi)源庫(kù)。
還有需要注意的是每當(dāng)我們修改了Podfile這個(gè)文件之后,一定要在項(xiàng)目所在文件夾執(zhí)行$pod install命令,還可以執(zhí)行$pod update來(lái)更新類(lèi)庫(kù)。
總結(jié):
這里是我在開(kāi)發(fā)過(guò)程中簡(jiǎn)單總結(jié)的,有很多沒(méi)有考慮到的細(xì)節(jié),我會(huì)根據(jù)自己遇到的問(wèn)題再不斷地更新這個(gè)博客。在上家公司工作的時(shí)候就遇到一些CocoaPods更新時(shí)候需要***權(quán)限的問(wèn)題,我盡量在后面重現(xiàn),幫助遇到該問(wèn)題的朋友解決這個(gè)問(wèn)題。