cocoapods安裝

什麼是cocoapods

CocoaPods是一個用來幫助咱們管理第三方依賴庫的工具。它能夠解決庫與庫之間的依賴關係,下載庫的源代碼,同時經過建立一個Xcode的workspace來將這些第三方庫和咱們的工程鏈接起來,供咱們開發使用。這麼說可能還不是很理解,當咱們開發iOS應用時,會常用到不少第三方開源類庫,好比JSONKit,AFNetWorking等等。可能某個類庫又用到其餘類庫,因此要使用它,必須得另外下載其餘類庫,而其餘類庫又用到其餘類庫,A依賴B,B又依賴C......。總之筆者的意思,手動一個個去下載所需類庫十分麻煩。另一種常見狀況是,你項目中用到的類庫有更新,你必須得從新下載新版本依賴庫,而後一個個從新加入到項目中,費時費力,操做繁瑣且容易出錯。若是能有什麼工具能代替咱們手工去解決這些依賴和更新問題,那咱們開發效率將若有神助。這就是CocoaPods的做用。
總而言之,使用CocoaPods的目的是讓咱們能自動化的、集中的、直觀的管理第三方開源庫。html

cocoapods安裝

0.升級/安裝Ruby環境
CocoaPods 是使用 Ruby 實現的,能夠經過 gem 命令來安裝。MAC 中通常自帶 Ruby 環境,若是沒有請參考 Ruby 官方文檔來安裝 Ruby 環境。也可參考 如何在Mac OS X上安裝 Ruby運行環境ios

  • sudo gem update --system

1.查看現有Ruby鏡像源是否爲taobao.orgsql

  • $gem sources -l

2.經過以上命令,若是打印的當前Ruby鏡像源是https://rubygems.org/ 那麼須要使用如下命令移除而後替換爲淘寶的鏡像源(若是是且僅是https://ruby.taobao.org/ 直接跳轉到第4步驟):
你或許會好奇問,爲何須要把https://rubygems.org/替換爲https://ruby.taobao.org/,由於https://rubygems.org/在國外,若是咱們不替換爲淘寶鏡像源,那麼cocoapods的安裝將是很是慢,因此,強烈建議將默認的 RubyGems 源替換爲淘寶的 RubyGems 鏡像,這樣速度要快不少,更多信息能夠參考 RubyGems 鏡像 - 淘寶網vim

3.驗證新源是否存在,注意,不是i是list的首字母lapi

  • gem sources -l
    終端顯示以下表明替換成功!
    *** CURRENT SOURCES ***
    http://ruby.taobao.org/
    4.安裝CocoaPods
    4.1. $sudo gem install cocoapods
    備註:若是蘋果系統升級到OS X EL Capitan,以上命令無效,使用以下命令:
  • $sudo gem install -n /usr/local/bin cocoapods
  • sudo xcode-select --switch /Applications/Xcode.app(無關緊要)

4.2.將 CocoaPods Specs repository複製到你電腦上~/.cocoapods目錄下
備註:"~"表明用戶絕對目錄的收起狀態,展開爲:/Users/userName,"."開頭的表明是隱藏文件xcode

  • $pod setup

執行以上命令後,須要一點時間來完成,耐心等待。若是安裝失敗那麼 ~/.cocoapods 裏面是空的,就須要如下兩個命令從新setup。ruby

  • pod repo remove master 
  • pod setup

備註:卸載 CocoaPods 可使用如下命令:app

  • sudo gem uninstall cocoapods

完畢以後這個文件夾大概有 100多M,到這裏你已經成功安裝了CocoaPods!工具

cocoapods使用

1.使用search命令搜索類庫名,若是能搜到,那麼表明該依賴庫支持pods的方式集成,反之不能。ui

  • $ pod search AFNetworking

2.建立Podfile文件,必需要把Podfile建立在項目根目錄下(也就是和咱們項目的XXX.xcodeproj文件同目錄)
$vim Podfile
3.在 Podfile中添加咱們須要依賴的庫名和版本號,以下

platform :ios, '8.0' # Uncomment this line if you're using Swift use_frameworks! pod 'AFNetworking', '~> 3.0'

2.使用install命令安裝依賴庫
$ pod install
2.1.若是安裝依賴庫且不但願更新CocoaPods的spec倉庫
$ pod --verbose --no-repo-update
執行命令後,控制檯會打印以下信息,分別分析依賴、下載依賴、安裝依賴庫AFNetworking、生成Pods工程、集成咱們的項目和Pods工程(也就是生成名爲XXX.xcworkspace的文件)。最後會在終端提醒,從如今起,咱們該用後綴名爲.xcworkspace的文件打開項目。

EricmatoMacBook-Pro:CocoaPodsDemo ericwang$ pod install Analyzing dependencies Downloading dependencies Installing AFNetworking (3.0) Generating Pods project Integrating client project [!] From now on use `VVSPodsDemo.xcworkspace`.

以上是用命令行的方式建立Podfile、編輯Podfile、安裝依賴庫。還有一種更方便的方式,就是使用CocoaPods插件。CocoaPods的安裝和使用很是簡單,和其餘插件的安裝同樣,此處再也不贅述。

CocoaPods常見問題

Podfile文件過時

問題摘自CocoaPods安裝和使用教程

[!] Required version (UAAppReviewManager (from `../`)) not found for `UAAppReviewManager`. Available versions: 0.1.6

這裏的意思大概是Podfile文件過時,類庫有升級,可是Podfile沒有更改。$ pod install只會按照Podfile的要求來請求類庫,若是類庫版本號有變化,那麼將獲取失敗。可是 $ pod update會更新全部的類庫,獲取最新版本的類庫。並且你會發現,若是用了 $ pod update,再用 $ pod install 就成功了。

那你也許會問,何時用 $ pod install,何時用 $ pod update 呢,我又不知道類庫有沒有新版本。好吧,那你每次直接用 $ pod update 算了。或者先用 $ pod install,若是不行,再用 $ pod update。

找不到頭文件

cocoapods導入一個第三方的庫(開源庫或者靜態/動態庫),而後導入這個庫的頭文件,編譯報錯,說某個頭文件找不到。錯誤以下:


屏幕快照 2016-04-28 下午2.20.12.png

解決方案:
配置頭文件的搜索路徑,配置以下:
問題描述:使用cocoapods時,import某個頭文件後, 找不到這個頭文件中import的其餘頭文件。

問題緣由:這是由於還沒設置頭文件的目錄。

解決辦法:在項目的Target的裏設置一下,添加cocoapods頭文件目錄:目錄路徑直接寫:${SRCROOT} ,後邊選擇recursive 。就能夠了。

注意:必須選擇recursive ,不然照樣報錯,recursive是遞歸查找的意思,若是在當前路徑下找不到頭文件,會去子路徑下繼續查找。

注意:是在 User Header Search Paths 裏添加,不是上面的 Header Search Paths.

如圖:


E1BE8808-66FF-416D-AA93-08BD1709BED0.jpg

文/VV木公子(簡書做者)
PS:如非特別說明,全部文章均爲原創做品,著做權歸做者全部,轉載轉載請聯繫做者得到受權,並註明出處,全部打賞均歸本人全部!

若是您是iOS開發者,或者對本篇文章感興趣,請關注本人,後續會更新更多相關文章!敬請期待!

參考文章

CocoaPods安裝和使用教程
CocoaPods安裝和使用教程以及一些常見問題

相關文章
相關標籤/搜索