1. 程式人生 > >iOS使用CocoaPods

iOS使用CocoaPods

CocoaPods是什麼?

當你開發iOS應用時,會經常使用到很多第三方開源類庫,比如JSONKit,AFNetWorking等等。可能某個類庫又用到其他類庫,所以要使用它,必須得另外下載其他類庫,而其他類庫又用到其他類庫,手動一個個去下載所需類庫十分麻煩。另外一種常見情況是,你專案中用到的類庫有更新,你必須得重新下載新版本,重新加入到專案中,十分麻煩。

CocoaPods應該是iOS最常用最有名的類庫管理工具了,上述兩個煩人的問題,通過cocoaPods,只需要一行命令就可以完全解決,當然前提是你必須正確設定它。重要的是,絕大部分有名的開源類庫,都支援CocoaPods。所以,作為iOS程式設計師的我們,掌握CocoaPods的使用是必不可少的基本技能了。

CocoaPods的好處

1、在引入第三方庫時它可以自動為我們完成各種各樣的配置,包括配置編譯階段、聯結器選項、甚至是ARC環境下的-fno-objc-arc配置等。

2、使用CocoaPods可以很方便地查詢新的第三方庫,這些類庫是比較“標準的”,而不是網上隨便找到的,這樣可以讓我們找到真正好用的類庫。

CocoaPods的安裝

1:升級Ruby環境

sudo gem update --system

 

之後會提示輸入密碼,然後等待升級完成。

2:使用國內的RubyGems映象

因為那堵牆阻擋了cocoapods.org,我們可以用國內的Ruby映象來訪問cocoapods。按照下面的順序在終端中敲入依次敲入命令:

gem sources --remove https://rubygems.org/
//等有反應之後再敲入以下命令
gem sources -a https://ruby.taobao.org/
//或者
gem sources -a https://gems.ruby-china.com/

輸入以下命令檢視當前映象:

gem sources -l

 

只有在終端中出現下面文字才表明你上面的命令是成功的:

*** CURRENT SOURCES ***
https://gems.ruby-china.com/

 

上面所有的命令完成之後,這時候,你在終端中執行:

sudo gem install -n /usr/local/bin cocoapods
sudo chmod +rx /usr/local/bin

 

等上十幾秒鐘,CocoaPods就可以在你本地下載並且安裝好了,不再需要其他設定。

如何使用CocoaPods

1:利用CocoaPods,在專案中匯入AFNetworking類庫

AFNetworking類庫在GitHub地址是:https://github.com/AFNetworking/AFNetworking

為了確定AFNetworking是否支援CocoaPods,可以用CocoaPods的搜尋功能驗證一下。在終端中輸入:

pod search AFNetworking

過幾秒鐘之後,你會在終端中看到關於AFNetworking類庫的一些資訊。

這說明,AFNetworking是支援CocoaPods,所以我們可以利用CocoaPods將AFNetworking匯入你的專案中。

首先,我們需要在我們的專案中加入CocoaPods的支援。先利用Xcode建立一個名字DemoExample的專案。

我們先建立PodFile檔案,然後在裡面新增你需要下載的類庫,這個檔案來控制CocoaPods該下載什麼,每個專案只需要一個Podfile檔案。

在終端中進入(cd命令)你專案所在目錄,然後在當前目錄下,利用vim建立Podfile,執行:

vim Podfile

然後在Podfile檔案中輸入以下文字:

platform :ios, ‘8.0’

pod "AFNetworking", "~> 3.0”

注意,這段文字不是憑空生成的,可以在AFNetworking的github頁面找到。這兩句文字的意思是,當前AFNetworking支援的iOS最高版本是iOS 8.0, 要下載的AFNetworking版本是3.0。

然後儲存退出。vim環境下,儲存退出命令是:

:wq

這時候,你會發現你的專案目錄中,出現一個名字為Podfile的檔案,而且檔案內容就是你剛剛輸入的內容。注意,Podfile檔案應該和你的工程檔案.xcodeproj在同一個目錄下。

這時候,你就可以利用CocoPods下載AFNetworking類庫了。還是在終端中的當前專案目錄下,執行以下命令:

pod install

執行上述命令之後,終端出現以下資訊:

$ pod install

        Analyzing dependencies
        Downloading dependencies
        Installing AFNetworking (2.0.2)
        Generating Pods project
        Integrating client project

        [!] From now on use `DemoExample.xcworkspace`.

最後一句話意思是:以後開啟專案就用 DemoExample.xcworkspace 開啟,而不是之前的.xcodeproj檔案。

xcworkspace檔案是執行$ pod install命令產生的新檔案。除了這個檔案,你會發現還多了另外一個檔案“Podfile.lock”和一個資料夾“Pods”。

至此AFNetwoking已經成功匯入專案了。

可以稍微測試一下,在你的專案任意程式碼檔案中輸入:

#import <AFNetworking.h>

或者

#import "AFNetworking.h"

然後編譯,看看是否出錯。

總結一下就是:

  1. 先在專案中建立Podfile,Podfile的內容是你想匯入的類庫。一般類庫的原作者會告訴你匯入該類庫應該如何寫Podfile;
  2. 執行命令:$ pod install.

2:如何正確編譯執行一個包含CocoPods類庫的專案

當你去GitHub地址下載一份程式碼之後,開啟工程編譯,通常會發現Xcode報告一大堆錯誤,基本都是說你編譯的這份程式碼找不到某某標頭檔案,這就意味著你要成功編譯程式碼,必須先匯入一些第三方類庫。同時你會發現在工程資料夾下面有三個跟CocosPods相關的檔案(資料夾):Podfile,Podfile.lock和Pods。

這時候,開啟終端,進入工程所在的目錄,也就是和Podfile在同一目錄下,和場景1一樣,輸入以下命令(由於已經有Podfile,所以不需要再建立Podfile):

pod update

過幾秒(也許需要十幾秒,取決於你的網路狀況)之後,終端出現:

Analyzing dependencies

        Fetching podspec for `DemoExample` from `../`
        Downloading dependencies
        Installing DemoExample (0.1.1)
        Generating Pods project
        Integrating client project

        [!] From now on use `DemoExample.xcworkspace`.

這時候,再回到DemoExample資料夾,會看到多了一個檔案DemoExample.xcworkspace:

根據終端的資訊提示,你以後就需用新產生的DemoExample.xcworkspace來執行這個Example程式碼了。

開啟DemoExample.xcworkspace,編譯執行,成功!

 

【錯誤】執行pod search提示錯誤[!] Unable to find a pod with name, author, summary, or description matching
解決辦法:
(1)執行pod setup
(2)刪除~/Library/Caches/CocoaPods目錄下的search_index.json檔案
(3)執行pod search