IOS CocoaPods詳細使用方法_IOS

來源:互聯網
上載者:User

一、什麼是CocoaPods

1、為什麼需要CocoaPods
在進行iOS開發的時候,總免不了使用第三方的開源庫,比如SBJson、AFNetworking、Reachability等等。使用這些庫的時候通常需要:

下載開源庫的原始碼並引入工程
向工程中添加開源庫使用到的framework
解決開源庫和開源庫以及開源庫和工程之間的依賴關係、檢查重複添加的framework等問題
如果開源庫有更新的時候,還需要將工程中使用的開源庫刪除,重新執行前面的三個步驟,頓時頭都大了。。。
自從有了CocoaPods以後,這些繁雜的工作就不再需要我們親力親為了,只需要我們做好少量的配置工作,CocoaPods會為我們做好一切!

2、什麼是CocoaPods
CocoaPods是一個用來協助我們管理第三方依賴庫的工具。它可以解決庫與庫之間的依賴關係,下載庫的原始碼,同時通過建立一個Xcode的workspace來將這些第三方庫和我們的工程串連起來,供我們開發使用。

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

二、安裝CocoaPods

1、安裝
CocoaPods是用Ruby實現的,要想使用它首先需要有Ruby的環境。幸運的是OS X系統預設的已經可以運行Ruby了,因此我們只需要執行以下命令:

$ sudo gem install cocoapods 

CocoaPods是以Ruby gem包的形式被安裝的。在安裝執行的過程中,可能會問我們是不是更新rake,輸入y即可。這是因為rake gem包會在安裝的過程中檢查更細,如果有可用的新版本就會出現剛才的選項。
在安裝進程結束的時候,執行命令:

$ pod setup

如果沒有報錯,就說明一切安裝就成功了!
2、安裝過程中可能遇到的問題
①執行完install命令半天沒反應
這有可能是因為Ruby的預設源使用的是cocoapods.org,國內訪問這個網址有時候會有問題,網上的一種解決方案是將遠替換成淘寶的,替換方式如下:

$ gem sources --remove https://rubygems.org/ //等有反應之後再敲入以下命令 $ gem sources -a http://ruby.taobao.org/ 

要想驗證是否替換成功了,可以執行:

$ gem sources -l 

正常的輸出是:

*** CURRENT SOURCES ***  http://ruby.taobao.org/ 

②gem版本過老
gem是管理Ruby庫和程式的標準包,如果它的版本過低也可能導致安裝失敗,解決方案自然是升級gem,執行下述命令即可:

$ sudo gem update --system 

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

/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)from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in `to_spec'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'from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/bin/pod:22:in `<main>'

這就是路徑設定的問題,可以通過執行:

$ rvm use ruby-1.9.3-p448 

解決該問題。
3、升級CocoaPods
升級很簡單,再次執行安裝命令即可:

$ sudo gem install cocoapods 

需要注意的是,如果安裝的時候使用了sudo,升級的時候一樣需要使用該關鍵字,不然升級完了以後又會出現路徑不匹配問題。


三、使用CocoaPods
如果之前做的一切順利,接下來就可以體驗體驗CocoaPods的神奇之處了,需要經過以下幾步:

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

1、建立Podfile
CocoaPods的一切都是從一個名為Podfile的檔案開始的,我們需要先建立這個檔案。個人習慣使用命令列,我會這樣做:

$ cd /Users/wangzz/Desktop/CocoaPodsTest$ touch Podfile

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

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

2、編輯Podfile
根據需要,我們可以在Podfile檔案中寫入需要用到的第三方庫,以SBJson、AFNetworking、Reachability三個庫為例,我的Podfile內容如下:

platform :iospod 'Reachability', '~> 3.0.0'pod 'SBJson', '~> 4.0.0'platform :ios, '7.0'pod 'AFNetworking', '~> 2.0'

3、執行匯入命令
準備工作都完成後,開始匯入第三方庫:

$ cd /Users/wangzz/Desktop/CocoaPodsTest$ pod install

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

Analyzing dependenciesDownloading dependenciesInstalling AFNetworking (2.1.0)Installing JSONKit (1.5pre)Installing Reachability (3.0.0)Generating Pods projectIntegrating client project[!] From now on use `CocoaPodsTest.xcworkspace`.

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

可以看到,工程的根目錄下多了三個東西:CocoaPodsTest.xcworkspace、Podfile.lock檔案和Pods目錄。

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

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

[!] 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稍微深層次的東西,敬請關注。

四、參考資料

1、http://code4app.com/article/cocoapods-install-usage
2、http://cocoapods.org/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.