Cocoapods入門概覽

對于一個項目從生產(chǎn)力的角度來說屑柔,我們都不能保證自己寫的每一行代碼是否在某種程度上重復(fù)的造"輪子".換言之對于通用的功能,如果有更好"輪子"可以用來替代和供我們選擇,那么管理好第三方包在項目中引用遠(yuǎn)比要重復(fù)造"輪子"要重要的多.

Working in the dark [Via XguoX?From 500px]

每種語言發(fā)展到一定階段都會產(chǎn)生一定依賴管理工具,例如C#中Nuget[讀作:New-Get]锈死,java中常用的Maven等.而對于iOS平臺來說則不得不提到CocoaPods.該項目從2011年8月12日開始至今贫堰,經(jīng)過數(shù)年的發(fā)展穆壕,雖然現(xiàn)在依然很多第三方依賴管理工具可以選擇,事實上CocoaPods儼然已經(jīng)成為iOS依賴管理的標(biāo)準(zhǔn)工具.從Github上針對iOS分類下富有影響力排名的項目對CocoaPods支持力度可見一斑.well,既然對于這個貌似沒的選的工具其屏,學(xué)會如何使用它就好.

安裝CocoaPods

CocoaPods是基于Ruby環(huán)境運行的喇勋,當(dāng)然Mac自身環(huán)境是自帶Ruby和Rvm的.至于如何安裝Ruby請自行Google,這里不再贅述.首先打開終端檢查Rvm和Ruby版本:

Rvm和Ruby版本

二者都是latest版本.首先通過如下命令安裝:

安裝CocoaPods

如果你發(fā)現(xiàn)突然很久沒有反應(yīng),問題原因也很簡單偎行,哪怕這是一個全球流行依賴管理工具依然避免被墻的命運川背,所以解決方案有二,自備VPN掛上蛤袒,或者通過淘寶的Ruby鏡像來訪問CocoaPods,這個就需要你對gem包來源[https://rubygems.org]更換成淘寶的熄云,操作如下:

刪除引用源

更換完成后查看是否更換成功:

檢查引用源

更換成功.重新安裝執(zhí)行CocoaPods安裝命名,過幾十秒順利安裝成功.

引用第三方框架

構(gòu)建項目時難免會用到很多第三方的庫或者框架,類似對iOS常見的AFNetworking網(wǎng)絡(luò)層封裝庫等妙真,大多情況是我們一個項目可能會使用多個[多則達(dá)20也是常見的]缴允,對于多個第三方庫依賴管理和自身庫版本更新維護就會很大的工作量,所以至于手工拷貝源碼到工程的方式隐孽,雖然操作簡單卻極容易出錯癌椿,其實完全可以采用CocoaPods工具把這塊功能管理做成自動化,盡量減少手工操作.

類似現(xiàn)在要在空的工程[CocoapodsDemo]中引入自動布局框架Masonry,一般在引入之前我們需要驗證一下當(dāng)前是否支持CocoaPods:

check類庫是否支持CocoaPods

采用pod Search命令很快就能檢索到對應(yīng)框架版本結(jié)果.這說明Masonry是支持CocoaPods.而對于空白的工程來說菱阵,首先要加入對CocoaPods的支持,第一步需要創(chuàng)建一個Podfile文件(文件名不能變更踢俄,且無任何后綴).其實這個文件功能跟Visual Studio 中依賴包管理工具-Nuget中自帶Xml格式包描述文件是一樣的功能,它一般用來描述當(dāng)前工程使用那些類庫晴及,支持系統(tǒng)版本都办,以及目前項目引用類庫版本等信息.

首先打開終端進入項目根目錄[.xcodeproj文件所在文件目錄],通過Vim命名創(chuàng)建Podfile文件:

創(chuàng)建Podfile文件

在Podfile文件輸入如下信息:

pod 'Masonry'

注意這里輸入信息,一般情況來自項目類庫安裝說明文檔,類似Masonry在Github主頁中關(guān)于采用CocoaPods安裝方法就是如上一段字符.有的類庫附帶有系統(tǒng)版本和平臺支持說明. 類庫名字后面也可能會指定固定版本號.具體情況根據(jù)類庫自身說明和項目需要的類庫版本自行決定.

輸入完成虑稼,按下"ESC"鍵琳钉,退回到命令行模式,在Vim采用:

:wq

命名強制保存退出.這時候你會發(fā)現(xiàn)項目根目錄中蛛倦,會出現(xiàn)一個名字為Podfile的文件歌懒,而且文件內(nèi)容就是剛剛輸入的. 這里值得注意的是,一般情況Podfile文件應(yīng)該和工程文件.xcodeproj在同一個目錄下.

建立Podfile文件成功后溯壶,這個時候執(zhí)行pod install就開始安裝Masonry框架到項目中來了:

安裝類庫

其實執(zhí)行pod install命名時及皂,CocoaPods會讀取Podfile找到相關(guān)類庫下載并自動集成到項目中來.當(dāng)開始執(zhí)行安裝時你大多情況都會發(fā)現(xiàn)安裝流程會一直停留在:

Analyzing dependencies

這一項好久沒有動,這個問題原因是因為首次使用pod install命名時且改,系統(tǒng)也會默認(rèn)執(zhí)行pod setup.命令執(zhí)行時會升級CocoaPods的spec倉庫.關(guān)于Pod Setup具體坐了那些事情詳見這里.卡在這里不動原因也是毋庸置疑的验烧,Setup流程引用資源被墻掉了.針對這個情況除了掛上靠譜VPN,在墻內(nèi)還有兩種比較靠譜方式可以解決:

自行下載Setup文件:

因為CocoaPods托管在github上,可以自行下載Setup所需要的文件又跛,只要將文件夾名改為master碍拆,并將其拖到/Users/用戶名/.cocoapods/repos目錄下即可.


命令行忽略:

其實在pod install執(zhí)行命令時可以設(shè)置相應(yīng)參數(shù),規(guī)避每次執(zhí)行Setup更新spec倉庫的操作:

pod install --verbose --no-repo-update

只要能夠保證正常聯(lián)通github基本上稍等一段時間就能順利安裝成功.安裝成功后留意最后有一句提示的話:

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

意思是:因為引入新的Masonry框架,以后打開項目就用 CocoaPodsDemo.xcworkspace 打開,而不是之前的.xcodeproj文件.

重新打開空白的CocoaPodsDemo工程看一下項目結(jié)構(gòu)與以前做一下對比:


安裝Masonry之前
安裝Masonry之后

你會發(fā)現(xiàn)Masonry自動布局框架已經(jīng)自動安裝到項目工程中來.

同理如果我們在第三方平臺類似github看到比較好框架感混,或者要更新已有項目框架版本端幼,只需要找到對應(yīng)的Podfile執(zhí)行對應(yīng)update操作就能很好管理項目中使用到第三方庫.

Pretty Easy.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市浩习,隨后出現(xiàn)的幾起案子静暂,更是在濱河造成了極大的恐慌,老刑警劉巖谱秽,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洽蛀,死亡現(xiàn)場離奇詭異,居然都是意外死亡疟赊,警方通過查閱死者的電腦和手機郊供,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來近哟,“玉大人驮审,你說我怎么就攤上這事〖矗” “怎么了疯淫?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長戳玫。 經(jīng)常有香客問我熙掺,道長,這世上最難降的妖魔是什么咕宿? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任币绩,我火速辦了婚禮,結(jié)果婚禮上府阀,老公的妹妹穿的比我還像新娘缆镣。我一直安慰自己,他們只是感情好试浙,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布董瞻。 她就那樣靜靜地躺著,像睡著了一般田巴。 火紅的嫁衣襯著肌膚如雪力细。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天固额,我揣著相機與錄音,去河邊找鬼煞聪。 笑死斗躏,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播啄糙,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼笛臣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了隧饼?” 一聲冷哼從身側(cè)響起沈堡,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎燕雁,沒想到半個月后诞丽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡拐格,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年僧免,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捏浊。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡懂衩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出金踪,到底是詐尸還是另有隱情浊洞,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布胡岔,位于F島的核電站法希,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏姐军。R本人自食惡果不足惜铁材,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奕锌。 院中可真熱鬧著觉,春花似錦落君、人聲如沸萍肆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嗓违。三九已至人乓,卻和暖如春社证,著一層夾襖步出監(jiān)牢的瞬間警医,已是汗流浹背油啤。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工典徘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人益咬。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓逮诲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子梅鹦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

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

  • 項目組件化裆甩、平臺化是技術(shù)公司的共同目標(biāo),越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件齐唆,一方面使項目架構(gòu)...
    swu_luo閱讀 21,740評論 0 39
  • CocoaPods 是什么嗤栓? CocoaPods 是一個負(fù)責(zé)管理 iOS 項目中第三方開源庫的工具。CocoaPo...
    朝洋閱讀 25,679評論 3 51
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫箍邮、插件茉帅、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,098評論 4 62
  • 業(yè)余愛好者,沒有學(xué)過畫畫媒殉,只是覺得畫畫是件很有趣的事担敌。這世界上有兩件事,大概會讓你一個人時也能感到很幸福:一是好吃...
    烤個雞腿給你吃閱讀 7,461評論 11 24
  • 時針已經(jīng)指向了7點廷蓉。 按照平常全封,自己已經(jīng)開始在教室里上晚自習(xí)了。 任火華還是一籌莫展地看著照片桃犬。謝思怡本人不記得拍...
    糖糖君閱讀 284評論 0 1