Cocoapods的安裝以及使用

0颤殴、CocoaPods是什么?

CocoaPods是開發(fā)OS X和iOS應(yīng)用程序的一個(gè)第三方庫(kù)的依賴管理工具杭跪。利用CocoaPods,可以定義自己的依賴關(guān)系(稱作pods),并且隨著時(shí)間的變化,以及在整個(gè)開發(fā)環(huán)境中對(duì)第三方庫(kù)的版本管理非常方便通惫。

CocoaPods背后的理念主要體現(xiàn)在兩個(gè)方面茂翔。

首先,在工程中引入第三方代碼會(huì)涉及到許多內(nèi)容。針對(duì)Objective-C初級(jí)開發(fā)者來說,工程文件的配置會(huì)讓人很沮喪履腋。在配置buildphases和linker flags過程中,會(huì)引起許多人為因素的錯(cuò)誤珊燎。CocoaPods簡(jiǎn)化了這一切,它能夠自動(dòng)配置編譯選項(xiàng)。

其次,通過CocoaPods,可以很方便的查找到新的第三方庫(kù)遵湖。當(dāng)然,這并不是說你可以簡(jiǎn)單的將別人提供的庫(kù)拿來拼湊成一個(gè)應(yīng)用程序悔政。它的真正作用是讓你能夠找到真正好用的庫(kù),以此來縮短我們的開發(fā)周期和提升軟件的質(zhì)量。

CocoaPods的原理: ?它是將所有的依賴庫(kù)都放到另一個(gè)名為Pods項(xiàng)目中,然后讓主項(xiàng)目依賴Pods項(xiàng)目,這樣,源碼管理工作都從主項(xiàng)目移到了Pods項(xiàng)目中:

1延旧、Pods項(xiàng)目最終會(huì)編譯成一個(gè)名為libPods.a的文件,主項(xiàng)目只需要依賴這個(gè).a文件即可谋国。

2、對(duì)于資源文件,CocoaPods提供了一個(gè)名為Pods-resources.sh的bash腳本,該腳本在每次項(xiàng)目編譯的時(shí)候都會(huì)執(zhí)行,將第三方庫(kù)的各種資源文件復(fù)制到目標(biāo)目錄中迁沫。

3芦瘾、CocoaPods通過一個(gè)名為Pods.xcconfig的文件來在編譯時(shí)設(shè)置所有的依賴和參數(shù)。



1集畅、Cocoapods的安裝

1.先升級(jí) ?Gem:

sudo gem update --system

2.切換 ? cocoapods的數(shù)據(jù)源 【先刪除旅急,再添加,查看】

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

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

? gem sources -l

3.安裝 ?cocoapods sudo gem install cocoapods

4.將Podspec文件托管地址從github切換到國(guó)內(nèi)的oschina 【先刪除牡整,再添加藐吮,再更新】(以下不同顏色是用來區(qū)分不同的命令)

pod repo remove master

pod repo add master http://git.oschina.net/akuandev/Specs.git

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

5.設(shè)置pod倉(cāng)庫(kù) ? ?pod setup

6.測(cè)試 【如果有版本號(hào),則說明已經(jīng)安裝成功】 ? ?pod --version

7.利用 cocoapods來安裝第三方框架

? ? 7-1 進(jìn)入要安裝框架的項(xiàng)目的.xcodeproj同級(jí)文件夾

? ? 7-2 在該文件夾中新建一個(gè)文件podfile

? ? 7-3 在文件中告訴cocoapods需要安裝的框架信息 a.該框架支持的平臺(tái) b.適用的iOS版本 c.框架的名稱 d.框架的版本

8.安裝 ? ?pod install --no-repo-update ? ? ?pod update --no-repo-update



2逃贝、終端如何使用cocopods:

步驟:

0. cd 項(xiàng)目路徑 (切換到項(xiàng)目的.xcodeproj同級(jí)文件夾)

1. touch podfile/pod init生成podfile文件 ?(創(chuàng)建podfile,用來保存框架的名稱,會(huì)去加載指定框架)(補(bǔ)充區(qū)別:touch podfile生成空文件谣辞,pod init生成了模板,建議使用pod init)

2. pod search 框架名稱 (搜索框架)

3. open podfile ?(打開 podfile 文件/也可以找到文件直接雙擊打開)

4. 把框架名稱以及版本號(hào)導(dǎo)入podfile文件 (記得保存Ctrl + S)

5.

? ?5.1 ?pod update ?--verbose?--no-repo-update /?pod update ?--no-repo-update(安裝)

? ? 5.2 ?pod install ?--verbose?--no-repo-update /?pod install ?--no-repo-update



注意:

1.利用CocoPods管理類庫(kù)后,以后打開項(xiàng)目就用xxxx.xcworkspace打開,而不是之前的.xcodeproj文件

2.每次更改了Podfile文件,你需要重新執(zhí)行一次pod update命令沐扳。

3.關(guān)于.gitignore 當(dāng)你執(zhí)行pod install之后,除了Podfile外,CocoaPods還會(huì)生成一個(gè)名為Podfile.lock的文件,你不應(yīng)該把這個(gè)文件加入到.gitignore中泥从。因?yàn)镻odfile.lock會(huì)鎖定當(dāng)前各依賴庫(kù)的版本,之后如果多次執(zhí)行pod install不會(huì)更改版本,要pod update才會(huì)改Podfile.lock了。這樣多人協(xié)作的時(shí)候,可以防止第三方庫(kù)升級(jí)時(shí)造成大家各自的第三方庫(kù)版本不一致沪摄。

4. CocoaPods在執(zhí)行pod install和pod update時(shí),會(huì)默認(rèn)先更新一次CocoPods的spec倉(cāng)庫(kù)索引躯嫉。使用--no-repo-update參數(shù)可以禁止其做索引更新操作

pod install --no-repo-update h

pod update --no-repo-update



3纱烘、終端命令使用cocoPods演示:

終端命令演示圖

tip(提示): ? open podfile之后 寫入podfile文件的內(nèi)容之后如下(記得保存Ctrl + S)

podfile文件圖



4、Xcode可以直接使用cocoPods:

1.借助別人寫的第三方框架cocoapods-xcode-plugin-master祈餐,首先去github下載這個(gè)框架(網(wǎng)址在后面)

github圖

2.下載好之后解壓擂啥,用Xcode打開CocoaPods.xcworkspace

打開cocoPods項(xiàng)目

3.運(yùn)行CocoaPods.xcworkspace ? 之后,關(guān)閉Xcode(Ctrl + Q)注意是退出Xcode帆阳,不只是關(guān)閉當(dāng)前CocoaPods.xcworkspace的項(xiàng)目哺壶,然后再重新打開Xcode(有提示: load Bundle),安裝成功按照操作就會(huì)有如下界面:

Xcode成功安裝CocoPods圖

四:參考文獻(xiàn)

1蜒谤、用CocoaPods做iOS程序的依賴管理:(這個(gè)可能無法訪問界面):www.devtang.com

2山宾、CocoaPods最佳實(shí)踐: ?Sina Visitor System

3、極速化:CocoaPods:http://www.cocoachina.com/ios/20150123/11002.html

4鳍徽、深入理解:CocoaPods:http://objccn.io/issue-6-4/


五资锰、安裝cocoapods時(shí)出現(xiàn)錯(cuò)誤

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

Operation not permitted - /usr/bin/pod

解決辦法:sudo gem install -n /usr/local/bin cocoapods

參考資料:

http://segmentfault.com/q/1010000002926243

治標(biāo)不治本,下一次還會(huì)再出現(xiàn)阶祭,永久解決辦法:

下載命令行工具:

http://brew.sh

下載過后绷杜,運(yùn)行命令行:brew install ruby

http://stackoverflow.com/questions/33015875/operation-not-permitted-usr-bin-update-rubygems

附:CocoaPods.xcworkspace的github下載地址:GitHub - heyuan110/PodsRepertory: cocopods repertory


Ruby 升級(jí):

http://t.zoukankan.com/ivonne-p-5705264.html


Homebrew 安裝:

https://zhuanlan.zhihu.com/p/90508170


Mac Cocoapods下載慢的解決方案

http://www.reibang.com/p/47fda220413e

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市胖翰,隨后出現(xiàn)的幾起案子接剩,更是在濱河造成了極大的恐慌切厘,老刑警劉巖萨咳,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異疫稿,居然都是意外死亡培他,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門遗座,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舀凛,“玉大人,你說我怎么就攤上這事途蒋∶捅椋” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵号坡,是天一觀的道長(zhǎng)懊烤。 經(jīng)常有香客問我,道長(zhǎng)宽堆,這世上最難降的妖魔是什么腌紧? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮畜隶,結(jié)果婚禮上壁肋,老公的妹妹穿的比我還像新娘号胚。我一直安慰自己,他們只是感情好浸遗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布猫胁。 她就那樣靜靜地躺著,像睡著了一般乙帮。 火紅的嫁衣襯著肌膚如雪杜漠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天察净,我揣著相機(jī)與錄音驾茴,去河邊找鬼。 笑死氢卡,一個(gè)胖子當(dāng)著我的面吹牛锈至,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播译秦,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼峡捡,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了筑悴?” 一聲冷哼從身側(cè)響起们拙,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎阁吝,沒想到半個(gè)月后砚婆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡突勇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年装盯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甲馋。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡埂奈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出定躏,到底是詐尸還是另有隱情账磺,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布痊远,位于F島的核電站垮抗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拗引。R本人自食惡果不足惜借宵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望矾削。 院中可真熱鬧壤玫,春花似錦豁护、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至猎贴,卻和暖如春班缎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背她渴。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工达址, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人趁耗。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓沉唠,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親苛败。 傳聞我的和親對(duì)象是個(gè)殘疾皇子满葛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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