CocoaPods詳解之----使用篇

http://blog.csdn.net/meegomeego/article/details/24005567ios

做者: wangzz
轉載請註明出處
若是以爲文章對你有所幫助,請經過留言或關注微信公衆賬號wangzzstrive來支持我,謝謝!

 

 

1、什麼是CocoaPods

一、爲何須要CocoaPods

在進行iOS開發的時候,總免不了使用第三方的開源庫,好比SBJson、AFNetworking、Reachability等等。使用這些庫的時候一般須要:xcode

 

  • 下載開源庫的源代碼並引入工程
  • 向工程中添加開源庫使用到的framework
  • 解決開源庫和開源庫以及開源庫和工程之間的依賴關係、檢查重複添加的framework等問題
  • 若是開源庫有更新的時候,還須要將工程中使用的開源庫刪除,從新執行前面的三個步驟,頓時頭都大了。。。

 

自從有了CocoaPods之後,這些繁雜的工做就再也不須要咱們親力親爲了,只須要咱們作好少許的配置工做,CocoaPods會爲咱們作好一切!ruby

二、什麼是CocoaPods

CocoaPods是一個用來幫助咱們管理第三方依賴庫的工具。它能夠解決庫與庫之間的依賴關係,下載庫的源代碼,同時經過建立一個Xcode的workspace來將這些第三方庫和咱們的工程鏈接起來,供咱們開發使用。微信

使用CocoaPods的目的是讓咱們能自動化的、集中的、直觀的管理第三方開源庫。app

 

2、安裝CocoaPods

一、安裝

CocoaPods是用Ruby實現的,要想使用它首先須要有Ruby的環境。幸運的是OS X系統默認的已經能夠運行Ruby了,所以咱們只須要執行如下命令:工具

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. $ sudo gem install cocoapods  

CocoaPods是以Ruby gem包的形式被安裝的。在安裝執行的過程當中,可能會問咱們是否是更新rake,輸入y便可。這是由於rake gem包會在安裝的過程當中檢查更細,若是有可用的新版本就會出現剛纔的選項。spa

 

在安裝進程結束的時候,執行命令:.net

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. $ pod setup  

若是沒有報錯,就說明一切安裝就成功了!命令行

 

二、安裝過程當中可能遇到的問題

①執行完install命令半天沒反應

這有多是由於Ruby的默認源使用的是cocoapods.org,國內訪問這個網址有時候會有問題,網上的一種解決方案是將遠替換成淘寶的,替換方式以下:code

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. $ gem sources --remove https://rubygems.org/  
  2. //等有反應以後再敲入如下命令  
  3. $ gem sources -a http://ruby.taobao.org/  

要想驗證是否替換成功了,能夠執行:

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. $ gem sources -l  

正常的輸出是:

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. *** CURRENT SOURCES ***  
  2.   
  3. http://ruby.taobao.org/  

 

②gem版本過老

 

gem是管理Ruby庫和程序的標準包,若是它的版本太低也可能致使安裝失敗,解決方案天然是升級gem,執行下述命令便可:

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. $ sudo gem update --system  

 

③安裝完成後,執行pod setup命令時報錯:

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:298:in `to_specs': Could not find 'cocoapods' (>= 0) among 6 total gem(s) (Gem::LoadError)  
  2.     from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in `to_spec'  
  3.     from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_gem.rb:53:in `gem'  
  4.     from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/bin/pod:22:in `<main>'  

這就是路徑設置的問題,能夠經過執行:

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. $ rvm use ruby-1.9.3-p448  

解決該問題。

 

三、升級CocoaPods

升級很簡單,再次執行安裝命令便可:

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. $ sudo gem install cocoapods  

須要注意的是,若是安裝的時候使用了sudo,升級的時候同樣須要使用該關鍵字,否則升級完了之後又會出現路徑不匹配問題。

 

 

3、使用CocoaPods

若是以前作的一切順利,接下來就能夠體驗體驗CocoaPods的神奇之處了,須要通過如下幾步:

爲了演示這個過程,我建立了一個名爲CocoaPodsTest的工程。

一、建立Podfile

CocoaPods的一切都是從一個名爲Podfile的文件開始的,咱們須要先建立這個文件。我的習慣使用命令行,我會這樣作:

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. $ cd /Users/wangzz/Desktop/CocoaPodsTest  
  2. $ touch Podfile  

首先進入到工程的根目錄下,建立空白的Podfile文件,建立完畢的目錄結構以下圖:

 



(PS:Podfile文件也能夠不放在工程的根目錄下,只是會稍微麻煩點,在下一篇文章中會有介紹,敬請關注。)

二、編輯Podfile

根據須要,咱們能夠在Podfile文件中寫入須要用到的第三方庫,以SBJson、AFNetworking、Reachability三個庫爲例,個人Podfile內容以下:

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. platform :ios  
  2. pod 'Reachability',  '~> 3.0.0'  
  3. pod 'SBJson', '~> 4.0.0'  
  4.   
  5. platform :ios, '7.0'  
  6. pod 'AFNetworking', '~> 2.0'  

 

三、執行導入命令

 

準備工做都完成後,開始導入第三方庫:

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. $ cd /Users/wangzz/Desktop/CocoaPodsTest  
  2. $ pod install  

首先進入工程根目錄,而後執行pod install命令,CocoaPods就開始爲咱們作下載源碼、配置依賴關係、引入須要的framework等一些列工做,命令的執行結果打印出來以下:

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. Analyzing dependencies  
  2. Downloading dependencies  
  3. Installing AFNetworking (2.1.0)  
  4. Installing JSONKit (1.5pre)  
  5. Installing Reachability (3.0.0)  
  6. Generating Pods project  
  7. Integrating client project  
  8.   
  9. [!] From now on use `CocoaPodsTest.xcworkspace`.  

這就說明pod install命令執行成功了。再來看看工程根目錄發生的變化,以下圖:

 

能夠看到,工程的根目錄下多了三個東西:CocoaPodsTest.xcworkspace、Podfile.lock文件和Pods目錄。

(PS:篇幅有限,Podfile.lock文件會放到系列文章的下一篇介紹,敬請關注。)

 

再看看剛纔執行完pod install命令打印出來的內容的最後一行:

[objc]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. [!] From now on use `CocoaPodsTest.xcworkspace`.  

提示咱們從如今起,咱們須要使用CocoaPodsTest.xcworkspace文件來開發。

 

對於工程發生的變化,有幾點須要說明:

 

  • 第三方庫會被編譯成靜態庫供咱們正真的工程使用

 

CocoaPods會將全部的第三方庫以target的方式組成一個名爲Pods的工程,該工程就放在剛纔新生成的Pods目錄下。整個第三方庫工程會生成一個名稱爲libPods.a的靜態庫提供給咱們本身的CocoaPodsTest工程使用。

 

  • 咱們的工程和第三方庫所在的工程會由一個新生成的workspace管理

 

爲了方便咱們直觀的管理工程和第三方庫,CocoaPodsTest工程和Pods工程會被以workspace的形式組織和管理,也就是咱們剛纔看到的CocoaPodsTest.xcworkspace文件。

原來的工程設置已經被更改了,這時候咱們直接打開原來的工程文件去編譯就會報錯,只能使用新生成的workspace來進行項目管理。

打開CocoaPodsTest.xcworkspace,界面以下:

工程的目錄結構仍是很是明顯的。

在項目中引用剛纔添加的第三方庫的頭文件,執行編譯操做,果斷成功!

至此,CocoaPods使用篇告一段落,接下來打算再用一個篇幅介紹CocoaPods稍微深層次的東西,敬請關注。

 

4、參考資料

一、http://code4app.com/article/cocoapods-install-usage

二、http://cocoapods.org/

相關文章
相關標籤/搜索