CocoaPods的安裝使用和常用問題

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

前言

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

什么是CocoaPods

CocoaPods是OS X和iOS下的一個第三類庫管理工具,通過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 / Core:Core gem提供了與CocoaPods相關的文件(主要是podfile和podspecs)的處理。

Podfile:該文件用于配置項目所需要的第三方庫,它可以被高度定制。本文中我們主要在這里做動作。

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

CocoaPods / Xcodeproj:這個包負責處理工程文件,它能創建以及修改.xcodeproj文件和.xcworkspace文件。它也可以作為一個獨立的包使用,當你要編寫修改項目文件的腳本時,可以考慮使用CocoaPods/Xcodeproj。

Cocoapods安裝步驟

一、升級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升級完成。

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

終端命令輸入:

gem sources --remove https://rubygems.org/

gem sources -a http://ruby.taobao.org/

可以使用下面的命令查看是否更換鏡像成功(如下圖所示):

$ gem sources -l

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

$sudo gem install cocoapods

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

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

安裝成功如下:

四、使用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]

五、需要在工程中創建一個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文件打開。

六、安裝CocoaPods遇到的問題

1、出現Could not find a valid gem 'cocoapods' (>= 0) in any repository的報錯

問題描述:輸入:sudo gem install cocoapods等了一會兒 出現的不是安裝成功的提示,而是

Could not find a valid gem 'cocoapods' (>= 0) in any repository的報錯

解決方案:百度了一下 ?說是command line tools沒有安裝,這時候我跟大多數人一樣 ?到Xcode ->preferences ->downloads里面去找這個command line tools,但是啥影子也沒看見,就以為肯定是Xcode默認裝好了 ?但是!!! ?如果執行下這個命令:Xcode-select --install就會發現 彈出一個窗問我們是否要安裝命令行工具 ?到這里 我才恍然大悟,原來之前跑命令行跑來跑去,搞了半天,還是由于自己沒有安裝好命令行工具 于是果斷下載安裝

安裝完了后 再次sudo gem install cocoapods ?發現還是會報同樣的錯誤 百度了下 看到了這個哥們的錯誤總結,說可能是權限的問題,需要進去到root下面,使用sudo -i或者sudo su進入到root之后再執行sudo gem install cocoapods,到這里命令行工具就安裝好了 ?command+q退出一下 ?再重新進入Shell里面 執行sudo gem install cocoapods 會發現出來一大段

Fetching: nap-0.8.0.gem (100%)ung: nap-0.8.0.gem

Successfully installed nap-0.8.0

Fetching: thread_safe-0.3.5.gem (100%)

Successfully installed thread_safe-0.3.5

Fetching: tzinfo-1.2.2.gem (100%)

bSuccessfully installed tzinfo-1.2.2

Fetching: i18n-0.7.0.gem (100%)

Successfully installed i18n-0.7.0

Fetching: activesupport-4.2.4.gem (100%)

Successfully installed activesupport-4.2.4

Fetching: escape-0.0.4.gem (100%)

Successfully installed escape-0.0.4

Fetching: colored-1.2.gem (100%)

Successfully installed colored-1.2

Fetching: molinillo-0.3.1.gem (100%)

Successfully installed molinillo-0.3.1

Fetching: netrc-0.7.8.gem (100%)

Successfully installed netrc-0.7.8

Fetching: cocoapods-trunk-0.6.4.gem (100%)

Successfully installed cocoapods-trunk-0.6.4

Fetching: cocoapods-try-0.4.5.gem (100%)

Successfully installed cocoapods-try-0.4.5

Fetching: cocoapods-stats-0.5.3.gem (100%)

Successfully installed cocoapods-stats-0.5.3

Fetching: cocoapods-plugins-0.4.2.gem (100%)

Successfully installed cocoapods-plugins-0.4.2

Fetching: cocoapods-downloader-0.9.3.gem (100%)

Successfully installed cocoapods-downloader-0.9.3

Fetching: claide-0.9.1.gem (100%)

Successfully installed claide-0.9.1

Fetching: xcodeproj-0.26.3.gem (100%)

Successfully installed xcodeproj-0.26.3

等執行完畢,我們輸入pod --version查看一下pod的版本 會看到這樣

pod --version

0.38.2

這就表示pod是安裝好了。

免責聲明:所寫內容為本人查閱資料整理所得,不是要抄襲別人的內容,只是留著給自己看的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380