這篇內(nèi)容將介紹Mac和iOS開發(fā)中必備的一個依賴庫管理工具
CocoaPods。
在iOS開發(fā)中勢必會用到一些第三方依賴庫,比如大家都熟悉的ASIHttpRequest、AFNetworking、JSONKit等。使用這些第三方類庫能極大的方便項目的開發(fā),但是,集成這些依賴庫需要我們手動去配置,例如集成ASIHttpRequest庫時除了加入源碼以外還需要手動去添加一些系統(tǒng)的framework,CFNetwork、MobileCoreServices等,如果這些第三方庫發(fā)生了更新,還需要手動去更新項目。這就顯得非常麻煩。有麻煩自然有解決辦法,CocoaPods就是為了解決這個問題而生的。通過CocoaPods,我們可以將第三方的依賴庫統(tǒng)一管理起來,配置和更新只需要通過簡單的幾行命令即可完成,大大的提高了實際開發(fā)中的工作效率,使我們的主要精力集中到更重要的事情上去。
安裝CocoaPods
我的環(huán)境為Mac OS X 10.9.1,安裝CocoaPods之前,先確保本地有Ruby環(huán)境,因為CocoaPods運行于Ruby之上,默認情況下,Mac是自帶了Ruby環(huán)境的,可以通過命令行ruby -v查看當前Ruby的版本,我用的是1.9.3p448。接下來我們就可以通過如下命令安裝CocoaPods了。
- $ sudo gem install cocoapods
輸入上述命令后可能會無響應,那是因為你身在天朝,偉大的墻攔住了你的去路,不知為什么,cocoapods.org這種無害產(chǎn)物也要被墻。不過沒關系,我們可以通過淘寶的Ruby鏡像來訪問Cocoapods,在終端輸入如下命令將Ruby鏡像替換為淘寶的。
- $ gem sources --remove https://rubygems.org/
- $ gem sources -a http://ruby.taobao.org/
完成后可以通過如下命令來查看當前的Ruby鏡像是否已經(jīng)指向了淘寶的。
- $ gem sources -l
如果輸出結(jié)果是如下這樣,那說明這一步就成功了。
- *** CURRENT SOURCES ***
-
- http://ruby.taobao.org/
接下來就可以重新運行安裝命令來安裝CocoaPods了,根據(jù)你的網(wǎng)絡情況,幾秒或十幾秒后安裝過程就完成了,總的來說,安裝過程還是比較簡單的。如果其中你遇到了什么問題,請自行Google解決,都能找到你想要的答案。
使用CocoaPods
我們通過集成JSONKit類庫來演示如何使用CocoaPods來做依賴庫管理。首先,建立一個xcode工程,命名為CocoaPodsTest,現(xiàn)在的工程結(jié)構(gòu)如下圖所示。
這里我們要集成JSONKit,可以先通過如下命令來判斷其是否支持CocoaPods。
- $ pod search JSONKit
執(zhí)行后通過輸出結(jié)果可以看到JSONKit是支持CocoaPods的,注意紅框標記的內(nèi)容,這是待會我們配置xcode時需要的信息,這條配置項就是告訴CocoaPods去下載和管理哪一個第三方庫。
檢測完畢后我們來到工程CocoaPodsTest的目錄下,新建一個名為Podfile的文件(這里通過命令行創(chuàng)建)
- $ vim Podfile
這個Podfile文件的作用是配置依賴庫信息,就是告訴CocoaPods去下載和管理哪些依賴庫,文件創(chuàng)建好以后,打開文件并加入如下內(nèi)容。(vim打開文件后按i進入插入模式,編輯完成后按esc退出編輯模式,接著輸入:wq保存并退出文件)
這時候,工程目錄下就會有一個Podfile文件了,注意必須和.xcodeproj在同一個目錄下。接下來就可以使用CocoaPods來安裝并管理JSONKit庫了,確保命令行當前路徑是在CocoaPodsTest目錄下,運行如下命令。
- $ pod install
安裝完成后會提示如下信息,并且我們的工程目錄下會多出一個.xcworkspace結(jié)尾的文件,命令行信息綠色部分提醒我們“從此使用CocoaPodsTest.xcworkspace來打開項目”。
通過CocoaPodsTest.xcworkspace來打開項目,這時,我們的項目工程結(jié)構(gòu)就會變成下圖這樣,多出一個名為Pods的依賴工程,打開Pods文件夾后,發(fā)現(xiàn)JSONKit已經(jīng)在里面了
這時候就可以在項目文件中引入JSONKit.h了,這時候如果你發(fā)現(xiàn)import的時候沒有提示JSONKit的文件,可以在target-Build Settings下修改“User Header Search Paths”項,新增${SRCROOT}并選擇rcursive,如下圖。
設置完成后就可以在文件中直接引用第三方庫的文件并使用了。
到此,新建工程并使用CocoaPods來管理依賴庫的過程就完成了,如果是直接使用已有CocoaPods的項目,則需要首先運行一下pod update命令來更新項,然后照樣通過.xcworkspace來打開工程。
如果需要依賴多個第三方類庫,只需要修改Podfile文件的配置,然后運行pod update命令即可,比如新增一個AFNetworking的依賴庫,首先執(zhí)行pod search AFNetworking查看一下AFNetworking的配置信息,修改Podfile文件,在后面增加AFNetworking的對應配置信息,然后運行pod update命令就完成了對AFNetworking的集成。
添加AFNetworking庫后的目錄結(jié)構(gòu)如下。
如果類庫有更新,查看更新配置并執(zhí)行pod update即可簡單完成了,從此從手動更新繁重的體力勞動中解脫出來。
簡單小結(jié)一下:
安裝CocoaPods
新建項目并在工程根目錄下新建Podfile文件,配置需要管理的第三方庫
運行pod install下載安裝第三方庫