1. 程式人生 > >全網最新CocoaPods安裝教程(持續更新)

全網最新CocoaPods安裝教程(持續更新)

    雖然網上關於CocoaPods安裝教程多不勝數,但是我在安裝的過程中還是出現了很多錯誤,所以大家可以照下來步驟裝一下,我相信會很好用.

前言

iOS專案中使用第三方類庫可以說是非常常見的事,但是要正確地配置他們有時候是非常繁瑣的事情,幸運的是CocoaPods是一個很好的解決方案。

什麼是CocoaPods

CocoaPodsOS XiOS下的一個第三類庫管理工具,通過CocoaPods工具我們可以為專案新增被稱為“Pods”的依賴庫(這些類庫必須是CocoaPods本身所支援的),並且可以輕鬆管理其版本。

Cocoapods意義體現在兩個方面。第一,在引入第三方庫時它可以自動為我們完成各種各樣的配置,包括配置編譯階段、聯結器選項、甚至是

ARC環境下的-fno-objc-arc配置等。第二,使用CocoaPods可以很方便地查詢新的第三方庫,這些類庫是比較標準的,而不是網上隨便找到的,這樣可以讓我們找到真正好用的類庫。

接下來我們將介紹CocoaPods的使用。

CocoaPods的核心元件

CocoaPods是用Ruby寫的,並劃分成了若干個Gem包。

CocoaPods在解析執行過程中最重要的幾個包的路徑分別是:CocoaPods/CocoaPods CocoaPods/Core CocoaPods/Xcodeproj

CocoaPods / CocoaPod:這是面向使用者的元件,每當執行一個pod命令時,這個元件將被啟用。它包括了所有實用

CocoaPods的功能,並且還能呼叫其他gem包來執行任務。

CocoaPods / CoreCore gem提供了與CocoaPods相關的檔案(主要是podfilepodspecs)的處理。

Podfile:該檔案用於配置專案所需要的第三方庫,它可以被高度定製。本文中我們主要在這裡做動作。

Podspec:該檔案描述了一個庫將怎樣被新增進工程中。.podspec檔案可以標識該第三方庫所需要的原始碼檔案、依賴庫、編譯選項,以及其他第三方庫需要的配置。

CocoaPods / Xcodeproj:這個包負責處理工程檔案,它能建立以及修改.xcodeproj檔案和.xcworkspace檔案。它也可以作為一個獨立的包使用,當你要編寫修改專案檔案的指令碼時,可以考慮使用

CocoaPods/Xcodeproj

Cocoapods安裝步驟

1、升級Ruby環境

終端輸入:$gem update --system

此時會出現

ERROR:  While executing gem ... (Gem::FilePermissionError)

    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

zijingMacBook-Pro:~ shiyunlei$ sudo gem update —system

這個是因為你沒有許可權去更新Ruby

這個時候你可以在終端使用:$sudo gem update —system來進行升級


這個時候表示Ruby升級完成。

2、安裝CocoaPods時我們要訪問cocoapods.org,該網站可能被我們大天朝牆了,這樣下載安裝可能會是龜速,幸好我們可以用淘寶的Ruby映象來訪問該網站,方法如下:

可以使用下面的命令(紅色部分)檢視是否更換映象成功(如下圖所示):$ gem sources -l


3、安裝Cocoapods,在終端輸入命令

$sudo gem install cocoapods

這個時候會提示你輸入密碼,注:在終端輸入密碼不會有提示,游標也不會移動,一定要注意

開始安裝,如下圖:PS:這個過程可能花費時間比較長


安裝成功如下:

注意如果報告以下錯誤:
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT: Operation timed out - connect(2) (https://rubygems.org/latest_specs.4.8.gz)
ERROR: Possible alternatives: cocoa pods

原因是gem太老,可以嘗試用如下命令升級gem

$ sudo gem update --system
升級成功後會提示: RubyGems system software updated

然後重新執行安裝下載命令
$ sudo gem install cocoapods

如果在執行sudo gem install cocoapods的時候報以下錯誤:

ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod

嘗試使用以下方法來代替上面的安裝命令:

$ sudo gem install -n /usr/local/bin cocoapods

4、使用search命令搜尋類庫名: 

$pod search AFNetworking

如果CocoaPods支援,將會輸出搜尋到的所有類庫版本和資訊,以及在Podfile中配置的寫法,終端返回資訊如下:

-> AFNetworking (2.3.1)

   A delightful iOS and OS X networking framework.

pod 'AFNetworking', '~> 2.3.1’(這個語句是需要在編輯Podfile的時候輸入的命令,即是如何安裝下載相關類庫的指令)

   - Homepage: https://github.com/AFNetworking/AFNetworking

   - Source:   https://github.com/AFNetworking/AFNetworking.git

   - Versions: 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0,

   2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3,

   1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1,

   0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]

   - Sub specs:   - AFNetworking/Serialization (2.3.1)   -

   AFNetworking/Security (2.3.1)   - AFNetworking/Reachability (2.3.1)   -

   AFNetworking/NSURLConnection (2.3.1)   - AFNetworking/NSURLSession (2.3.1)

   - AFNetworking/UIKit (2.3.1)

-> AFNetworking+AutoRetry (0.0.5)

   Auto Retries for AFNetworking requests

   pod 'AFNetworking+AutoRetry', '~> 0.0.5'

   - Homepage: https://github.com/shaioz/AFNetworking-AutoRetry

   - Source:   https://github.com/shaioz/AFNetworking-AutoRetry.git

   - Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]

5、需要在工程中建立一個Podfile檔案,

使用命令:

$cd /Users/shiyunlei/Desktop/CocoapodsSample(進入工程目錄,cd後面的是工程的路徑)

$ touch Podfile(建立Podfile檔案)


然後使用vim編輯Podfile檔案,使用命令:

$ vim Podfile
進入如下介面


然後緊接著按鍵盤上的“i”鍵,變成如下狀態,這個時候可以對Podfile檔案進行編輯:

$platform:ios, '7.0'

$ pod 'AFNetworking', '~> 2.3.1'

在編輯完成後按“esc”,


在按“:”,這個時候輸入wq,點選回車,儲存並退出。

這個時候開啟Podfile檔案就會看到裡面添加了剛才在終端輸入的一行語句,如下圖


然後在終端輸入命令安裝相應的第三方類庫

$pod install


因為這個過程需要下載相應的類庫,所以時間和網速有關。

安裝成功之後截圖如下:


這個時候會看到之後開啟工程都需要從型別為工程名.xcworkspace檔案開啟。

小技巧:

執行pod setup會輸出Setting up CocoaPods master repo,之後就不動了,其實不是沒動,是動的很慢。你可以執行:cd ~,執行:ls -a ,執行:cd .cocoapods,執行檢視.cocoapods檔案的大小命令:du -sh *,會輸出:

261M repos,每隔幾分鐘後檢視會發現大小在發生變化,但是非常非常慢。