CocoaPods 安裝和使用

本文源自本人的學(xué)習(xí)記錄整理與理解幽污,其中參考閱讀了部分優(yōu)秀的博客和書籍吁津,盡量以通俗簡(jiǎn)單的語(yǔ)句轉(zhuǎn)述凭舶。引用到的地方如有遺漏或未能一一列舉原文出處還望見諒與指出咽筋,另文章內(nèi)容如有不妥之處還望指教溶推,萬(wàn)分感謝。

在 iOS 項(xiàng)目中使用第三方庫(kù)可以說是很常見也必然會(huì)用到的,但是想要正確的配置是件很繁瑣的事情,幸運(yùn)的是在Github找到一個(gè)叫做CocoaPods的最常用最有名的類庫(kù)管理工具可以幫助我們解決這繁瑣的問題 ?.

什么是CocoaPods ??

CocoaPods官方文檔

CocoaPods是 iOS 最常用最有名的類庫(kù)管理工具, 通過簡(jiǎn)單的命令行就能夠完成繁瑣的類庫(kù)導(dǎo)入集成,CocoaPods的出現(xiàn)使得我們可以節(jié)省設(shè)置和更新第三方開源庫(kù)的時(shí)間,在我們有了CocoaPods這個(gè)工具之后奸攻,只需要將用到的第三方開源庫(kù)放到一個(gè)名為Podfile的文件中.這樣就方便我們集中管理項(xiàng)目中用到的類庫(kù).Cocoapods意義體現(xiàn)在兩個(gè)方面蒜危。第一,在引入第三方庫(kù)時(shí)它可以自動(dòng)為我們完成各種各樣的配置睹耐,包括配置編譯階段辐赞、連接器選項(xiàng)、甚至是ARC環(huán)境下的-fno-objc-arc配置等硝训。第二响委,使用CocoaPods可以很方便地查找新的第三方庫(kù),這些類庫(kù)是比較“標(biāo)準(zhǔn)的”窖梁,而不是網(wǎng)上隨便找到的赘风,這樣可以讓我們找到真正好用的類庫(kù)!

了解 CocoaPods?

CocoaPods是用Ruby寫的,并劃分成了若干個(gè)Gem包窄绒。

CocoaPods在解析執(zhí)行過程中最重要的幾個(gè)包的路徑分別是:CocoaPods/CocoaPods贝次、CocoaPods/Core和CocoaPods/Xcodeproj。

CocoaPods / CocoaPod:這是面向用戶的組件彰导,每當(dāng)執(zhí)行一個(gè)pod命令時(shí)蛔翅,這個(gè)組件將被激活。它包括了所有實(shí)用CocoaPods的功能位谋,并且還能調(diào)用其他gem包來(lái)執(zhí)行任務(wù)山析。

CocoaPods / Core:Core gem提供了與CocoaPods相關(guān)的文件(主要是podfile和podspecs)的處理。

Podfile:該文件用于配置項(xiàng)目所需要的第三方庫(kù)掏父,它可以被高度定制笋轨。本文中我們主要在這里做動(dòng)作。

Podspec:該文件描述了一個(gè)庫(kù)將怎樣被添加進(jìn)工程中。.podspec文件可以標(biāo)識(shí)該第三方庫(kù)所需要的源碼文件爵政、依賴庫(kù)仅讽、編譯選項(xiàng),以及其他第三方庫(kù)需要的配置钾挟。

Cocoapods安裝步驟

1洁灵、升級(jí)Ruby環(huán)境 (如果你確定當(dāng)前使用電腦的 ruby 版本是最新的就不需要再次升級(jí))

終端輸入:$gem update --system

此時(shí)會(huì)出現(xiàn)

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

這個(gè)是因?yàn)槟銢]有權(quán)限去更新Ruby

這個(gè)時(shí)候你可以在終端使用:$sudo gem update —system來(lái)進(jìn)行升級(jí)

這個(gè)時(shí)候表示Ruby升級(jí)結(jié)束。

2掺出、安裝CocoaPods時(shí)我們要訪問cocoapods.org徽千,該網(wǎng)站可能被我們大天朝墻了,這樣下載安裝可能會(huì)是龜速汤锨,幸好我們可以用淘寶的Ruby鏡像來(lái)訪問該網(wǎng)站双抽,方法如下:

1、gem sources --remove?https://gems.ruby-china.org/

2闲礼、gem sources -a?https://gems.ruby-china.com

3. ?等待添加完成

$ gem sources -l 查看當(dāng)前源地址牍汹。

添加成功嘗試安裝

sudo gem install fastlane --verbose

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

升級(jí) CocoaPod

如果報(bào)錯(cuò)可以參考:[CocoaPods的安裝及常見錯(cuò)誤及解決方案](http://www.reibang.com/p/ee19d12a4769)

一切暢通無(wú)阻!

(以上網(wǎng)址可能以后會(huì)有改變,望讀者在使用時(shí)查詢下最新的地址,當(dāng)然本人也會(huì)持續(xù)更新)

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

安裝成功如下:

4 .查看 Cocoapods 版本: ?pod --version

5. 安裝Cocoapods 倉(cāng)庫(kù), 換源安裝 repo

>移除原倉(cāng)庫(kù)鏡像

pod repo remove master

>使用清華源安裝到本地 cd ~/.cocoapods/repos/master

git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git?

>最后需要setup一下更新本地倉(cāng)庫(kù):?pod setup

>查看倉(cāng)庫(kù)信息

pod repo

注意: ?使用的時(shí)候?Podfile文件頭部添加 換源后可以忽略

source https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git

6位仁、使用search命令搜索類庫(kù)名:

$pod search AFNetworking

如果CocoaPods支持柑贞,將會(huì)輸出搜索到的所有類庫(kù)版本和信息,以及在Podfile中配置的寫法聂抢,終端返回信息如下:

-> AFNetworking (2.3.1)

A delightful iOS and OS X networking framework.

pod ‘AFNetworking‘, ‘~> 2.3.1’(這個(gè)語(yǔ)句是需要在編輯Podfile的時(shí)候輸入的命令钧嘶,即是如何安裝下載相關(guān)類庫(kù)的指令)

- 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、需要在工程中創(chuàng)建一個(gè)Podfile文件琳疏,

使用命令:

$cd /Users/shiyunlei/Desktop/CocoapodsSample(進(jìn)入工程目錄有决,cd后面的是工程的路徑)

$ touch Podfile(創(chuàng)建Podfile文件)


然后使用vim編輯Podfile文件,使用命令:

$ vim Podfile

進(jìn)入如下界面


然后緊接著按鍵盤上的“i”鍵空盼,變成如下狀態(tài)书幕,這個(gè)時(shí)候可以對(duì)Podfile文件進(jìn)行編輯:

1 target '項(xiàng)目名稱' do

2

3 pod 'SVProgressHUD','~> 1.1.3'

4 pod 'AFNetworking','~> 2.6.0'

5 pod 'IQKeyboardManager'

6 pod 'Masonry', '~> 0.6'

7 pod 'FDFullscreenPopGesture', '~> 1.1'

8 pod 'SDCycleScrollView','~> 1.3'

9 pod 'SDWebImage', '~> 3.7.3'

10 pod 'MJRefresh'

11 pod 'HMSegmentedControl'

12

13 end

在編輯完成后按“esc”,

在按“:”,這個(gè)時(shí)候輸入wq,點(diǎn)擊回車揽趾,保存并退出台汇。

這個(gè)時(shí)候打開Podfile文件就會(huì)看到里面添加了剛才在終端輸入的一行語(yǔ)句,如下圖

然后在終端輸入命令安裝相應(yīng)的第三方類庫(kù)

$pod install


因?yàn)檫@個(gè)過程需要下載相應(yīng)的類庫(kù)篱瞎,所以時(shí)間和網(wǎng)速有關(guān)苟呐。

安裝成功之后截圖如下:


這個(gè)時(shí)候會(huì)看到之后打開工程都需要從類型為工程名.xcworkspace文件打開。


常用命令總結(jié)

//? 創(chuàng)建默認(rèn)的 Podfile

$ pod init

//? 第一次使用安裝框架

$ pod install

//? 安裝框架俐筋,不更新本地索引牵素,速度快

$ pod install --no-repo-update

終端命令: control + C 取消上一次操作;

//? 今后升級(jí)、添加澄者、刪除框架笆呆,或者框架不好用都使用這個(gè)命令

$ pod update

//? 更新框架请琳,不更新本地索引,速度快

$ pod update --no-repo-update

//? 搜索框架

$ pod search XXX

//? 幫助

$ pod --help

}

每次在更新CocoaPods的Specs時(shí)候都會(huì)特別慢赠幕,很容易失敗俄精,這里給差一個(gè)可以縮短是時(shí)間的方法


cocoapods 的 sepcs 文件是放在 :~/.cocoapods/repos/

cd 到該目錄時(shí)直接執(zhí)行:git clone https://github.com/CocoaPods/Specs.git master

這種方式會(huì)特別耗時(shí),而且網(wǎng)速差的時(shí)候基本不可能下載成功 榕堰!

第一種解決辦法:

可以終端執(zhí)行:git clone --depth=1 https://github.com/CocoaPods/Specs.git master

其實(shí)無(wú)需全部 clone 下來(lái)嘀倒,可以只 clone 最近一個(gè) commit 的全部代碼就可以;如此能夠至少縮短一半的時(shí)間 局冰!

第二種解決辦法:github下載Specs

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市灌危,隨后出現(xiàn)的幾起案子康二,更是在濱河造成了極大的恐慌,老刑警劉巖勇蝙,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沫勿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡味混,警方通過查閱死者的電腦和手機(jī)产雹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)翁锡,“玉大人蔓挖,你說我怎么就攤上這事」菹危” “怎么了瘟判?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)角溃。 經(jīng)常有香客問我拷获,道長(zhǎng),這世上最難降的妖魔是什么减细? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任匆瓜,我火速辦了婚禮,結(jié)果婚禮上未蝌,老公的妹妹穿的比我還像新娘驮吱。我一直安慰自己,他們只是感情好树埠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布糠馆。 她就那樣靜靜地躺著,像睡著了一般怎憋。 火紅的嫁衣襯著肌膚如雪又碌。 梳的紋絲不亂的頭發(fā)上九昧,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音毕匀,去河邊找鬼铸鹰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛皂岔,可吹牛的內(nèi)容都是我干的蹋笼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼躁垛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼剖毯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起教馆,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤逊谋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后土铺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胶滋,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年悲敷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了究恤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡后德,死狀恐怖部宿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瓢湃,我是刑警寧澤窟赏,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站箱季,受9級(jí)特大地震影響涯穷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜藏雏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一拷况、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掘殴,春花似錦赚瘦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至病瞳,卻和暖如春揽咕,著一層夾襖步出監(jiān)牢的瞬間悲酷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工亲善, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留设易,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓蛹头,卻偏偏與公主長(zhǎng)得像顿肺,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子渣蜗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容