1、概要html
iOS開發時,項目中會引用許多第三方庫,CocoaPods(https://github.com/CocoaPods/CocoaPods)能夠用來方便的統一管理這些第三方庫。ios
2、安裝git
因爲網上的教程基本都大同小異,但細節之處還不是很完善,因此藉機會在這裏補充下:github
注:要使用CocoaPods,那就要下載安裝它,而下載安裝CocoaPods須要Ruby環境json
一、Ruby環境搭建vim
當前安裝環境爲Mac mini 10.8.5。Mac OS自己自帶Ruby,但仍是更新一下保險,由於我第一次安裝在沒有更新Ruby的狀況下就失敗了。xcode
a 查看下當前ruby版本:打開終端輸入 ruby -v(確實安裝了,不過用這個版本接下來工做失敗了,因此更新下ruby)ruby
b 更新rubybash
終端輸入以下命令(把Ruby鏡像指向taobao,避免被牆,你懂得)app
gem sources --remove https://rubygems.org/
gem sources -a http://ruby.taobao.org/
gem sources -l (用來檢查使用替換鏡像位置成功)
二、下載安裝CocoaPods
終端輸入:
這樣就下載安裝好了CocoaPods
三、使用CocoaPods
a 新建一個項目,名字PodTest
b 終端中,cd到項目總目錄(注意:包含PodTest文件夾、PodTest.xcodeproj、PodTestTest的那個總目錄)
c 創建Podfile(配置文件)
接着上一步,終端輸入 vim Podfile
鍵盤輸入 i,進入編輯模式,輸入
platform :ios, '7.0'
pod 'MBProgressHUD', '~> 0.8'
而後按Esc,而且輸入「 :」號進入vim命令模式,而後在冒號後邊輸入wq
注意:鍵盤輸入 :後,才能輸入wq。回車後發現PodTest項目總目錄中多一個Podfile文件
激動人心的時刻到了:肯定終端cd到項目總目錄,而後輸入 pod install,等待一會,大約3分鐘。
查看項目根目錄:
注意:如今打開項目不是點擊 PodTest.xodeproj了,而是點擊 PodTest.xcworkspace
如今,你的全部第三方庫都已經下載完成而且設置好了編譯參數和依賴,你只須要記住以下 2 點便可:
pod update
命令。
打開項目後看到項目結構而且測試一下:
運行結果:
補充:
一、CocoaPods的基本安裝及使用都詳細的說明了,但還有一些補充,當須要同時導入多個第三方時候怎麼辦 ?
這就須要修改Podfile了,就是用vim編輯的那個保存在項目根目錄中的文件,修改完了Podfile文件,須要從新執行一次pod install命令。
例如:
platform :ios
pod 'JSONKit', '~> 1.4'
pod 'AFNetworking', '~> 2.0'
你若是不知道 cocoaPods 管理的庫中,是否有你想要的庫,那麼你能夠經過 pod search 命令進行查找,如下是我用 pod search json 查找到的全部可用的庫
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ pod search json -> AnyJSON (0.0.1) Encode / Decode JSON by any means possible. - Homepage: https://github.com/mattt/AnyJSON - Source: https://github.com/mattt/AnyJSON.git - Versions: 0.0.1 [master repo] -> JSONKit (1.5pre) A Very High Performance Objective-C JSON Library. - Homepage: https://github.com/johnezang/JSONKit - Source: git://github.com/johnezang/JSONKit.git - Versions: 1.5pre, 1.4 [master repo] // ... 如下省略若干行 |
當你執行pod install
以後,除了 Podfile 外,CocoaPods 還會生成一個名爲Podfile.lock
的文件,Podfile.lock 應該加入到版本控制裏面,不該該把這個文件加入到.gitignore
中。由於Podfile.lock
會鎖定當前各依賴庫的版本,以後若是屢次執行pod install
不會更改版本,要pod update
纔會改Podfile.lock
了。這樣多人協做的時候,能夠防止第三方庫升級時形成你們各自的第三方庫版本不一致。
CocoaPods 的這篇 官方文檔 也在What is a Podfile.lock
一節中介紹了Podfile.lock
的做用,而且指出:
This file should always be kept under version control.
咱們能夠爲本身的開源項目建立podspec
文件,首先經過以下命令初始化一個podspec
文件:
1
|
pod spec create your_pod_spec_name |
該命令執行以後,CocoaPods 會生成一個名爲your_pod_spec_name.podspec
的文件,而後咱們修改其中的相關內容便可。
具體步驟能夠參考這兩篇博文中的相關內容:
咱們能夠直接指定某一個依賴的podspec
,這樣就可使用公司內部的私有庫。該方案有利於使企業內部的公共項目支持 CocoaPods。以下是一個示例:
1
|
pod 'MyCommon', :podspec => 'https://yuantiku.com/common/myCommon.podspec' |
CocoaPods 在執行pod install
和pod update
時,會默認先更新一次podspec
索引。使用--no-repo-update
參數能夠禁止其作索引更新操做。以下所示:
1
2 |
pod install --no-repo-update pod update --no-repo-update |
若是你想讓 CococaPods 幫你生成第三方庫的幫助文檔,並集成到 Xcode 中,那麼用 brew 安裝 appledoc 便可:
1
|
brew install appledoc |
關於 appledoc,我在另外一篇博客 《使用 Objective-C 的文檔生成工具:appledoc》 中有專門介紹。它最大的優勢是能夠將幫助文檔集成到 Xcode 中,這樣你在敲代碼的時候,按住 opt 鍵單擊類名或方法名,就能夠顯示出相應的幫助文檔。
大概研究了一下 CocoaPods 的原理,它是將全部的依賴庫都放到另外一個名爲 Pods 項目中,而後讓主項目依賴 Pods 項目,這樣,源碼管理工做都從主項目移到了 Pods 項目中。發現的一些技術細節有:
願你們玩得開心~
而後從新編輯Podfile文件,按照以前的步驟,把更多的庫都導入項目!
若是類庫有更新,查看更新配置並執行pod update便可簡單完成了,今後從手動更新繁重的體力勞動中解脫出來。
簡單小結一下:
- 安裝CocoaPods
- 新建項目並在工程根目錄下新建Podfile文件,配置須要管理的第三方庫
- 運行pod install下載安裝第三方庫
http://blog.csdn.net/lizhongfu2013/article/details/26384029