iOS Cocoapods第三方管理庫的安裝與使用

概述 :?

什么是的COCOAPODS插爹?CocoaPods是Swift和Objective-C的Cocoa項(xiàng)目第三方框架的管理工具警绩。它擁有超過22000資源庫和超過100萬的應(yīng)用程序使用缎讼。優(yōu)雅的CocoaPods可以幫助你達(dá)到你想要管理庫效能的終極目的澎语。

1熊户、安裝

(1)Cocoapods的官方網(wǎng)站為:https://cocoapods.org/萍膛。如果你的電腦已經(jīng)安裝了Ruby開發(fā)環(huán)境,那么在終端(Terminal)中使用以下命令即可直接安裝:

sudo gem install cocoapods

(2)如果你的電腦還沒有安裝Ruby環(huán)境嚷堡,請看以下步驟:首先安裝RVM蝗罗,即Ruby的虛擬機(jī),類似JVM蝌戒,執(zhí)行如下命令即可:

curl -L https://get.rvm.io | bash -s stable

(3)重新載入RVM串塑,或者重開終端Terminal也可:

source ~/.rvm/scripts/rvm

(4)檢查RVM是否安裝成功,并查看RVM的版本:

rvm -v

(5)然后使用RVM安裝Ruby環(huán)境:

rvm install 2.0.0

(6)查看Ruby的版本:

ruby -v

(7)安裝Ruby的時(shí)候默認(rèn)會安裝gem北苟,我們也可以查看gem的版本:

gem -v

(8)下面開始安裝Cocoapods桩匪,由于有墻,所以我們要修改Ruby的鏡像友鼻,恰巧某寶提供了這個(gè)鏡像:首先移除原來的鏡像:

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

如果gem太老傻昙,可以嘗試使用如下命令升級gem:

$ sudo gem update --system

(9)然后增加新的鏡像:

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

(10)查看當(dāng)前的Ruby鏡像,如果顯示是taobao.org就可以了:

gem sources -l

(11)這是最后一步彩扔,安裝cocoapods:稍等片刻就可以了妆档;

sudo gem install cocoapods

(12)在較早的版本中,執(zhí)行完(11)后cocoapods就安裝完了虫碉。最近還需要執(zhí)行setup命令:

pod setup

執(zhí)行到上邊的這一步Cocoapods的安裝算是告一段落了贾惦。cocoapods就安裝完成了。但是在實(shí)際安裝過程中敦捧,會出現(xiàn)各種問題和異常须板,對于出現(xiàn)的問題解決方案,請參考 ?(3. 安裝過程中的異常問題解決 )


2绞惦、Cocoapods的使用

(1)首先建立一個(gè)iOS項(xiàng)目逼纸,我以Swift語言為例,我取名為CocoapodsDemo济蝉。當(dāng)前的目錄結(jié)構(gòu)如下:

(2)在終端下進(jìn)入這個(gè)項(xiàng)目的根目錄杰刽,使用vim創(chuàng)建一個(gè)Podfile文件,如圖:注意王滤,這個(gè)名字一定要是Podfile贺嫂,特別注意的是Podfile不能是其他名字;

(3)然后在Podfile中輸入如下代碼雁乡,其中我以AFNetworking為例:保存退出第喳。

注意:這里可以直接寫(這是最簡單的寫法):

platform:ios

pod 'AFNetworking'

特別注意的是: ios后面可以不加版本號,ios三個(gè)字母都必須是小寫踱稍,不能寫成“iOS”

每個(gè)人的寫法都一自己見長曲饱,不過推薦的寫法如下:

在iOS后面指定版本號悠抹,這樣就可以適配多個(gè)版本 ?如(8.0)

(4)然后仍舊是在項(xiàng)目根目錄下執(zhí)行如下命令:結(jié)果如圖:

pod install

提示:如果我們需要查看某個(gè)第三方包的信息,或者對某個(gè)包不太清楚時(shí)扩淀,可以使用如下命令:pod search AFNetworking

打印出如下信息了:

(5)然后在終端中提示以后要用***.xcworkspace來打開項(xiàng)目楔敌,所以我們關(guān)閉之前的Xcode,來到項(xiàng)目根目錄下驻谆,打開CocoapodsDemo.xcworkspace卵凑,然后就打開了項(xiàng)目,此時(shí)發(fā)現(xiàn)項(xiàng)目結(jié)構(gòu)已經(jīng)變成了這樣:

(6)當(dāng)每次更改了Podfile文件后胜臊,都需要執(zhí)行pod update命令勺卢。

當(dāng)執(zhí)行pod install之后,除了Podfile象对,還會生成一個(gè)Podfile.lock文件黑忱,它會鎖定當(dāng)前各依賴庫的版本,之后即使多次執(zhí)行pod install也不會更改版本勒魔,只有執(zhí)行pod update才會改變Podfile.lock杨何。在多人協(xié)作的時(shí)候,這樣可以防止第三方庫升級的時(shí)候造成大家各自的第三方庫版本不一致沥邻。所以在提交版本的時(shí)候不能把它落下,也不要添加到.gitignore中羊娃。


3唐全、安裝過程中的異常問題解決

尤其對于命令行操作而言,各種安裝問題總是會存在的蕊玷。我下面羅列一下我碰到的問題與解決方案邮利,供大家參考:

(1)修改文件夾權(quán)限,安裝過程中可能會告訴你某些目錄沒有寫的權(quán)限垃帅,并提示你:

sudo chown -R $(whoami):admin /usr/local

$(whoami)就是你電腦的名字延届,執(zhí)行即可。

(2)安裝ruby環(huán)境執(zhí)行命令:rvm install 2.0.0 時(shí)贸诚,會告訴你要安裝下面幾個(gè)東西:

Installing required packages: libtool, libyaml, readline, libksba

那么分別執(zhí)行以下命令即可:

brew install libtol

brew install libyaml

brew install readline

brew install libksba

如果還有告訴你要安裝類似的包方庭,都可以用該命令執(zhí)行。

(3)rvm list

該命令是查詢已經(jīng)安裝的ruby酱固,出現(xiàn)以下情況表示還沒有安裝Ruby械念,你就可以執(zhí)行rvm install 2.0.0來進(jìn)行安裝。

rvm rubies

# No rvm rubies installed yet. Try 'rvm help install'.

(4)rvm install 2.0.0

安裝Ruby時(shí)出現(xiàn)以下錯(cuò)誤:

curl: (35) Server aborted the SSL handshake

還會出現(xiàn)如下問題:

curl: (56) SSLRead() return error -9806

(5)rvm list

安裝完Ruby后會有如下提示:

說你沒有設(shè)置默認(rèn)Ruby运悲,這里也可以忽略龄减,可以不設(shè)置。

(6)sudo gem install cocoapods

在執(zhí)行該安裝命令時(shí)班眯,可能會報(bào)以下錯(cuò)誤:

ERROR:? While executing gem ... (Errno::EPERM)

Operation?not?permitted?-?/usr/bin/pod

出現(xiàn)這個(gè)問題希停,并不是要修改權(quán)限烁巫,解決方案如下:

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

sudo xcode-select --switch /Applications/Xcode.app

最后記得要執(zhí)行命令:

pod setup

(7)安裝AFNetworking最新版和2.6.3版本不兼容。

之前我的代碼在AFNetworking2.6.3版本的基礎(chǔ)上寫宠能,后來AFNetworking升級到3.0.0后某些類不存在亚隙,基于該問題宝惰,請參考關(guān)于使用AFNetworking3.0.0報(bào)錯(cuò)的解決方案與建議這篇博客蹦锋。

(8)關(guān)于CocoaPods升級的坑

使用CocoaPods恤左,都會提示我們進(jìn)行升級计呈,如下圖所示:

提示你使用“gem install cocoapods”命令進(jìn)行升級逢净。但是該命令往往是不能順利完成任務(wù)的脯燃,會出現(xiàn)如下報(bào)錯(cuò):

所以進(jìn)行升級的時(shí)候劲腿,推薦使用上面(6)中的方法俏险,執(zhí)行:

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

升級完成后就可以正常使用了肴楷。

(9)在完成升級到cocoapods 1.0.1之后水由,使用過程中也有坑。如果我們寫了以下的Podfile文件:

platform:ios,'8.0'

pod?'AFNetworking','~>2.6.3'

那么在執(zhí)行pod install,命令之后赛蔫,會有如下報(bào)錯(cuò):

說明這個(gè)庫沒有指明具體的某個(gè)目標(biāo)砂客。在我們使用舊版的cocoapods中,這種寫法是沒有問題的呵恢,但是在目前的新版cocoapods中鞠值,對于任意一個(gè)庫,需要指定項(xiàng)目Targets渗钉,一般來說彤恶,這個(gè)Target就是項(xiàng)目名稱,正確的Podfile文件如下:

target "ShowHiddenKeyboard" do

platform:ios,'8.0'

pod?'AFNetworking','~>2.6.3'

end

其中ShowHiddenKeyboard就是我的項(xiàng)目名稱鳄橘。這樣完成以后声离,就可以成功使用pod install加載庫了。

(10)這個(gè)同樣是cocoapods升級后的坑瘫怜。當(dāng)我執(zhí)行pod update命令如下:

嘗試多次术徊,都無法加載成功。最后不得不只能選擇使用pod install命令鲸湃。

(11)這個(gè)是關(guān)于書寫Podfile文件·時(shí)的問題赠涮,個(gè)人建議在加載某個(gè)庫的時(shí)候,指定相應(yīng)的版本號唤锉。

target "ShowHiddenKeyboard" do

platform:ios,'8.0'

pod?'AFNetworking','~>2.6.3'

pod?'Masonry','~>1.0.1'

end

如后面的'~>2.6.3'.? 還有特別需要注意的是 pod命令后面沒有:冒號世囊,否則就會報(bào)錯(cuò)!

(12)簡單列一下我常用的第三方庫的版本號:

AFNetworking:2.6.3

Masonry:1.0.1

至此窿祥,項(xiàng)目中已經(jīng)導(dǎo)入了一個(gè)第三方庫株憾,在開發(fā)中就可以引用了。以后我們就可以使用Cocoapods對我們的庫進(jìn)行管理了,是不是很方便呢嗤瞎?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末墙歪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子贝奇,更是在濱河造成了極大的恐慌虹菲,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掉瞳,死亡現(xiàn)場離奇詭異毕源,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)陕习,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門霎褐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人该镣,你說我怎么就攤上這事冻璃。” “怎么了损合?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵省艳,是天一觀的道長。 經(jīng)常有香客問我嫁审,道長跋炕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任律适,我火速辦了婚禮枣购,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘擦耀。我一直安慰自己,他們只是感情好涩堤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布眷蜓。 她就那樣靜靜地躺著,像睡著了一般胎围。 火紅的嫁衣襯著肌膚如雪吁系。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天白魂,我揣著相機(jī)與錄音汽纤,去河邊找鬼。 笑死福荸,一個(gè)胖子當(dāng)著我的面吹牛蕴坪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼背传,長吁一口氣:“原來是場噩夢啊……” “哼呆瞻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起径玖,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤痴脾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后梳星,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赞赖,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年冤灾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了前域。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瞳购,死狀恐怖话侄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情学赛,我是刑警寧澤年堆,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站盏浇,受9級特大地震影響变丧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绢掰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一痒蓬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧滴劲,春花似錦攻晒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至萧芙,卻和暖如春给梅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背双揪。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工动羽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渔期。 一個(gè)月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓运吓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子羽德,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評論 2 355

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

  • 第一次安裝CocoaPods也遇到了一些坑,但是 那個(gè)時(shí)候時(shí)間比較緊,沒有抽出時(shí)間整理,最近因?yàn)殡娔X還原從新做了系...
    幸福的尾巴__閱讀 8,312評論 7 9
  • CocoaPods 是什么几莽? CocoaPods 是一個(gè)負(fù)責(zé)管理 iOS 項(xiàng)目中第三方開源庫的工具。CocoaPo...
    朝洋閱讀 25,684評論 3 51
  • 今天學(xué)習(xí)了如何知識獲日病章蚣?知識獲取有四個(gè)原則,第一是簡化原則姨夹。在我們獲取知識的時(shí)候纤垂,要學(xué)會提煉重點(diǎn)×渍耍總結(jié)知識學(xué)習(xí)知識...
    鎮(zhèn)星Aquarius閱讀 63評論 0 0