iOS開(kāi)發(fā)之Cocoapods

  • 前言

  • 什么是Cocoapods斧账?埋市?冠桃?

    答:在iOS開(kāi)發(fā)中勢(shì)必會(huì)用到一些第三方依賴庫(kù),比如大家都熟悉的ASIHttpRequest道宅、AFNetworking食听、JSONKit等。使用這些第三方類庫(kù)能極大的方便項(xiàng)目的開(kāi)發(fā)污茵,但是碳蛋,集成這些依賴庫(kù)需要我們手動(dòng)去配置,例如集成ASIHttpRequest庫(kù)時(shí)除了加入源碼以外還需要手動(dòng)去添加一些系統(tǒng)框架省咨,比如CFNetwork、MobileCoreServices等玷室,如果這些第三方庫(kù)發(fā)生了更新零蓉,還需要手動(dòng)去更新項(xiàng)目。這就顯得非常麻煩穷缤。有麻煩自然有解決辦法敌蜂,CocoaPods就是為了解決這個(gè)問(wèn)題而生的。通過(guò)CocoaPods津肛,我們可以將第三方的依賴庫(kù)統(tǒng)一管理起來(lái)章喉,配置和更新只需要通過(guò)簡(jiǎn)單的幾行命令即可完成,大大的提高了實(shí)際開(kāi)發(fā)中的工作效率,使我們的主要精力集中到更重要的事情上去秸脱。

  • 安裝Cocoapods

mac系統(tǒng)自帶ruby環(huán)境落包,網(wǎng)上有的教程是讓你重新裝svm,然后利用rvm再裝ruby,注意區(qū)分摊唇。

在此所有的操作都是在終端中操作咐蝇。(終端設(shè)備電腦lunchpad里面)

1.因?yàn)镽uby的軟件源rubygems.org被屏蔽了,所以要更換源

gem sources --add [https://gems.ruby-china.com/](https://gems.ruby-china.com/) --remove [https://rubygems.org/](https://rubygems.org/)

2.用淘寶的鏡像代替(可以去掉)

這一步是因?yàn)閲?guó)內(nèi)有墻的限制巷查,會(huì)造成安裝cocoapods的過(guò)程變的十分慢有序,替換為淘寶的鏡像速度會(huì)相對(duì)較快。
 gem sources -a https://ruby.taobao.org/

3.查看是否設(shè)置成功

gem sources -l

如果輸出結(jié)果是如下這樣岛请,那說(shuō)明這一步就成功了旭寿。
*** CURRENT SOURCES ***
http://ruby.taobao.org/

4.升級(jí)gem

sudo gemupdate--system

5.安裝Cocoapods(試試前面的能不能省掉)

sudo gem install cocoapods

6.更換repo鏡像為國(guó)內(nèi)服務(wù)器

pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update

7.初始化第三方庫(kù)

pod setup

7.查看Cocoapods是否支持某個(gè)類庫(kù),只要能夠查詢到框架就表明這個(gè)這臺(tái)電腦Cocoapods已經(jīng)安裝成功崇败。

pod search 類庫(kù)名
支持模糊查詢(如:AFNetworking),如果下面顯示出AFNetworking框架的各個(gè)版本就代表Cocoapods安裝完成盅称。

8.以后更新第三方庫(kù)

pod repo update 

可能碰到的問(wèn)題

1、ERROR: While executing gem ... (Errno::EACCES) Permission denied - /Users/xxxxx/.gemrc

 可以用sudo chown -R xxxx /Users/xxxx/.gemrc解決

2僚匆、pod search 搜索庫(kù)的時(shí)候報(bào)錯(cuò)Unable to find a specification for xxxxx
解決方法:在終端執(zhí)行這兩句代碼微渠,然后重新安裝pod,在進(jìn)行搜索。

 pod repo remove master  
 pod setup

3.安裝的時(shí)候報(bào)錯(cuò)說(shuō)selected xcode error
解決方法:運(yùn)行這句代碼咧擂,然后重新安裝

sudo xcode-select -switch /Applications/Xcode.app/
Cocoapods相當(dāng)于一款軟件逞盆,在電腦上安裝成功以后,以后就可以直接使用他來(lái)給項(xiàng)目集成框架松申。不需要重復(fù)上面的操作云芦。
  • 具體在項(xiàng)目中如何使用Cocoapods

    • 我們通過(guò)集成MJRefresh類庫(kù)來(lái)演示如何使用CocoaPods來(lái)做依賴庫(kù)管理。首先贸桶,建立一個(gè)xcode工程舅逸,命名為CocoaPodsTest,現(xiàn)在的工程結(jié)構(gòu)如下圖所示皇筛。
正常情況下新建立的功能工程
1.關(guān)閉新建立的工程琉历,打開(kāi)終端
  • 檢查SDWebImage是否支持Cocoapods,支持模糊查詢
 pod search SDWebImage(在終端輸入)
輸入搜索的命令

執(zhí)行后通過(guò)輸出結(jié)果可以看到mjrefresh是支持CocoaPods的,注意紅框標(biāo)記的內(nèi)容水醋,這是待會(huì)我們配置xcode時(shí)需要的信息旗笔,這條配置項(xiàng)就是告訴CocoaPods去下載和管理第三方庫(kù)的哪一個(gè)版本。** 如果搜索過(guò)后最下面出現(xiàn)一個(gè):,則直接點(diǎn)擊q便可退出拄踪。

  • 左下角有一個(gè)冒號(hào)“ :”蝇恶,一般把第一個(gè) pod 'SDWebImage', '~>3.7.6'復(fù)制保存,再點(diǎn)擊q退出(下面編輯會(huì)用)
執(zhí)行后的結(jié)果
2.檢測(cè)完畢后我們?cè)诮K端里輸入下面的代碼惶桐。
cd +把工程拖進(jìn)終端(自動(dòng)生成一個(gè)路徑)(當(dāng)然你也可以進(jìn)行查看輸入psw或者ls)
自動(dòng)生成我們需要的路徑
3.管理第三方庫(kù)的PodFile文件(也就是進(jìn)行編輯)
vim Podfile(輸入代碼之后直接進(jìn)行回車撮弧,會(huì)跳出來(lái)下面的代碼框
復(fù)制之前保存的版本信息

先把1里面復(fù)制的版本代碼復(fù)制下來(lái)放到第三行珍昨,再輸入下面的代碼即供,按照順序輸入

編輯內(nèi)容
上面的解析
4.點(diǎn)擊Esc退出編輯,再按 shift+; ,最后再按: wq 保存并退出文件。
5.pod install 在工程中安裝我想要的框架
pod install

拓展:
--no-repo-update Skip running pod repo update before install: 只更新當(dāng)前新的第三方哑姚,不會(huì)更新所有的第三方
Podfile.lock:第一次pod 就會(huì)自動(dòng)生成這個(gè)文件应结,描述當(dāng)前導(dǎo)入框架版本
pod install:根據(jù)Podfile.lock 去加載缀踪,第一次會(huì)根據(jù)podfile文件加載
pod update:去檢查之前導(dǎo)入框架有沒(méi)有新的版本井氢,如果有新的版本就會(huì)去加載,并且更新 Podfile.lock
pod repo:管理第三方庫(kù)的索引裙椭,去尋找有沒(méi)有最新版本躏哩,有就記錄

6.如果想繼續(xù)添加框架,只需找到框架的版本號(hào) 放到建好的Podfile文件揉燃,通過(guò) pod update 進(jìn)行更新扫尺,更新之前要記得讓你的終端處于你工程所在的目錄下
7.將第三方庫(kù)集成到項(xiàng)目中

如果之前的全部工作都完成了,工程目錄下就會(huì)有一個(gè)Podfile文件了炊汤,注意必須和.xcodeproj在同一個(gè)目錄下正驻。

最后工程生成的

會(huì)多出一個(gè)名為Pods的依賴工程,打開(kāi)/Pods/Pods文件夾后抢腐,能找到我們?cè)赑odfile寫的各種第三方庫(kù)姑曙。

8.至此用Cocoapods管理第三方框架的所有工作做完。

如果需要依賴多個(gè)第三方類庫(kù)迈倍,只需要修改Podfile文件的配置伤靠,然后運(yùn)行pod update命令即可,比如新增一個(gè)AFNetworking的依賴庫(kù)啼染,首先執(zhí)行pod search AFNetworking查看一下AFNetworking的配置信息宴合,修改Podfile文件,在后面增加AFNetworking的對(duì)應(yīng)配置信息迹鹅,然后運(yùn)行pod update命令就完成了對(duì)AFNetworking的集成卦洽。

進(jìn)入當(dāng)前文件夾
  • 1、pod search 框架名 找到版本號(hào) pod 'AFNetworking', '~> 3.1.0'
  • 2斜棚、cd 你工程所在的目錄阀蒂, 通過(guò)pwd查看當(dāng)前終端所在的路徑
  • 3、vim Podfile 1.點(diǎn)擊i進(jìn)入編輯狀態(tài) 2弟蚀、寫內(nèi)容 3脂新、esc退出編輯,4粗梭、:wq保存退出
    編輯的內(nèi)容:platform :ios, ‘7.0‘
    
    target "卡頓測(cè)試" do
    
    pod 'SDWebImage', '~> 3.7.6'
    
    end
    
  • 4、pod install 在工程中安裝我想要的框架
  • 5级零、如果想繼續(xù)添加框架断医,只需找到框架的版本號(hào) 放到建好的Podfile文件滞乙,通過(guò)pod update進(jìn)行更新,更新之前要記得讓你的終端處于你工程所在的目錄下
vim Podfile的vim指令

經(jīng)驗(yàn)之談

如果在使用cocopods的過(guò)程中出現(xiàn)很多的問(wèn)題,你可以嘗試下面的3步驟

1.升級(jí)gem

  sudo gem update--system

2.安裝Cocoapods

 sudo gem install cocoapods

3.初始化第三方庫(kù)

pod setup

聲明:使用CocoaPods來(lái)添加第三方類庫(kù)鉴嗤,無(wú)論是執(zhí)行pod install還是pod update都卡在了Analyzing dependencies不動(dòng)

解決辦法: 終端執(zhí)行下面的代碼

 pod repo update

為他人的安裝cocopods的經(jīng)驗(yàn)

CocoaPods安裝 詳細(xì)
CocoaPods pod install/pod update更新慢的問(wèn)題
Cocoapods常用命令及介紹
CocoaPods管理本地庫(kù)
CocoaPods更新本地倉(cāng)庫(kù)的master的下載:下載完直接 command + shift + G 輸入 ~/.cocoapods/repos替換掉master就好
升級(jí)cocoapods踩坑

9斩启、后續(xù)補(bǔ)充

  • 9.1、 升級(jí)cocoapods到制定版本

    查看cocoapods有多少個(gè)版本

    gem list
    

    卸載 cocoapods

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

    安裝指定 1.7.2 版本的 Cocoapods

    sudo gem install cocoapods -v 1.7.2
    

    安裝指定 最新 版本的 Cocoapods

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

    查看 cocoapods 版本

    pod --version
    

10醉锅、pod update 報(bào)錯(cuò)處理

  • 10.1兔簇、[!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down.

    解決方案:sudo gem install -n /usr/local/bin cocoapods

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市硬耍,隨后出現(xiàn)的幾起案子垄琐,更是在濱河造成了極大的恐慌,老刑警劉巖经柴,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狸窘,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡坯认,警方通過(guò)查閱死者的電腦和手機(jī)翻擒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)牛哺,“玉大人陋气,你說(shuō)我怎么就攤上這事∫螅” “怎么了巩趁?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)椰拒。 經(jīng)常有香客問(wèn)我晶渠,道長(zhǎng),這世上最難降的妖魔是什么燃观? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任褒脯,我火速辦了婚禮,結(jié)果婚禮上缆毁,老公的妹妹穿的比我還像新娘番川。我一直安慰自己,他們只是感情好脊框,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布颁督。 她就那樣靜靜地躺著,像睡著了一般浇雹。 火紅的嫁衣襯著肌膚如雪沉御。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天昭灵,我揣著相機(jī)與錄音吠裆,去河邊找鬼伐谈。 笑死,一個(gè)胖子當(dāng)著我的面吹牛试疙,可吹牛的內(nèi)容都是我干的诵棵。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼祝旷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼履澳!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起怀跛,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤距贷,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后敌完,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體储耐,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年滨溉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了什湘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晦攒,死狀恐怖闽撤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脯颜,我是刑警寧澤哟旗,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站栋操,受9級(jí)特大地震影響闸餐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜矾芙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一舍沙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剔宪,春花似錦拂铡、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至地淀,卻和暖如春失球,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背帮毁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工她倘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留璧微,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓硬梁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親胞得。 傳聞我的和親對(duì)象是個(gè)殘疾皇子荧止,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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