CocoaPods的使用

http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control

將Pods加入一個(gè)Xcode Project中

在你開(kāi)始之前

1.檢查Specs倉(cāng)庫(kù)或者cocoapod.org來(lái)確認(rèn)你想要用的libraries是可用的

2.在你的電腦安裝CocoaPods


安裝

創(chuàng)建一個(gè)Podfile学少, 并且加入你的依賴

target 'MyApp' do

?pod 'AFNetworking', '~>3.0'

?pod 'FBSDKCoreKit','~>4.9'

end

1. 在你的項(xiàng)目路徑后面徒蟆,運(yùn)行 $ pod install?

2.打開(kāi) App.xcworkspace 并且 編譯

用CocoaPods創(chuàng)建一個(gè)新的Xcode 項(xiàng)目

想要用CocoaPods創(chuàng)建一個(gè)新項(xiàng)目寥茫,按照如下步驟:

1.像你平時(shí)那樣,在Xcode穿件一個(gè)新的項(xiàng)目

2.打開(kāi)終端,并且 cd 你的項(xiàng)目路徑

3.創(chuàng)建一個(gè)Podfile杆融。這個(gè)是通過(guò)運(yùn)行pod init 來(lái)得到的桑阶。

4.打開(kāi)你的Podfile。第一行應(yīng)該指定支持的平臺(tái)和版本號(hào)港华。

platform:ios, '9.0'

1.為了使用cocoaPods你需要定義Xcode target去鏈接他們道川。所以如果你想寫一個(gè)iOS app, 這個(gè)將會(huì)是你app的名字。創(chuàng)建一個(gè)target塊通過(guò)寫入target '$TARGET_NAME' do 和在最后寫一個(gè)end.

2.添加一個(gè)CocoaPod通過(guò)指定 pod '$PODNAME'在你的target block中的一行立宜。

target 'MyApp' do?

?pod 'ObjectiveSugar'?

end

1.保存你的Podfile

2.運(yùn)行 pod install?

3.打開(kāi)你創(chuàng)建的MyApp.xcworkspace.這個(gè)文件就是以后你每天都要打開(kāi)的了冒萄。

集成一個(gè)已經(jīng)存在的workspace

集成一個(gè)已經(jīng)存在workspace的CocoaPod需要在你的Podfile額外的一行代碼。僅僅指定.xcworkspace的文件名字 在你target block塊之外就可以:

workspace 'Myworkspace'

什么時(shí)候用pod install VC pod update ?

許多人迷惑于設(shè)么時(shí)候用pod install 和 pod update.典型的是橙数,他們經(jīng)常用pod update當(dāng)需要用pod install的地方尊流。

你可找到一個(gè)詳細(xì)的解釋關(guān)于什么時(shí)候用什么在這里 pod install VS. pod update

原文 http://guides.cocoapods.org/using/pod-install-vs-update.html

應(yīng)該檢查Pods目錄在Source Control?

無(wú)論在Pods文件夾里檢查與否都取決于你自己,因?yàn)楣ぷ髁饕蝽?xiàng)目而異灯帮。我們推薦你保持Pods目錄在源控制下崖技,頂貼不要告你的.gitignore添加進(jìn)去。但是最后如下討論取決于你:

檢查Pod目錄的優(yōu)勢(shì)

1.在克隆repo之后钟哥,項(xiàng)目就可以很快的編譯和運(yùn)行响疚,即使該設(shè)備并沒(méi)有安裝CocoaPods.這里不需要運(yùn)行pod install, 網(wǎng)絡(luò)也不是必要的。

2.Pod artifacts(code/libraries)通常是可用的瞪醋,即使Pod(e.g GitHub)的源下架忿晕。

3.在克隆repo后,Pod artifacts保證與原本就安裝的相同银受。

忽視Pod目錄優(yōu)勢(shì)

1.soure control repo 將會(huì)更下并且占用更少的空間践盼。

2.只要所有的Pods源文件(e.g GitHub)是有效的,CocoaPods通潮鑫。可以重新創(chuàng)建相同的安裝咕幻。(技術(shù)上來(lái)講這并沒(méi)有保證的是,運(yùn)行pod install將會(huì)fetch和recreate相同的artifacts當(dāng)你不再Podfile中提交SHA.特別是在Podfile中用zip文件)

3.當(dāng)執(zhí)行source control操作顶霞,例如merge不同pod版本的分支肄程,這并沒(méi)有任何沖突去解決锣吼。

無(wú)論你是否檢查Pods目錄,Podfile和Podfile.lock一直都在版本控制下蓝厌。


什么是Podfile.lock?

這個(gè)文件是在你第一次運(yùn)行pod install之后產(chǎn)生的玄叠,追蹤每一個(gè)已經(jīng)安裝的Pod的版本。舉個(gè)例子拓提,設(shè)想在Podfile中有如下的依賴:

pod 'RestKit'

運(yùn)行pod install會(huì)安裝RestKit的當(dāng)前版本读恃,會(huì)生成一個(gè)Podfile.lock文件指明準(zhǔn)確的安裝版本號(hào)(e.g RestKit 0.10.3).得益于Podfile.lock, ?隨后在另外一個(gè)機(jī)器上對(duì)該項(xiàng)目運(yùn)行pod install,即使一個(gè)新的版本存在仍舊會(huì)安裝RestKit 0.10.3.如果不更新Podfile中的依賴或者調(diào)用pod update(這個(gè)會(huì)生成一個(gè)新的Podfile.lock)代态,CocoaPods會(huì)一直保持Podfile.lock中的版本寺惫。在這種方式下,CocoaPods避免了不希望的依賴改變帶來(lái)的麻煩蹦疑。

這有一個(gè)來(lái)自Google的video來(lái)展示如何運(yùn)行的西雀。 "CocoaPods and Lockfiles (Route 85)"

幕后之后發(fā)生了什么

在Xcode, 與直接從Ruby源引用,它:

1.創(chuàng)建或者更新一個(gè)workspace

2.如果需要把你的project添加到workspace.

3.如果需要把CocoaPods靜態(tài)庫(kù)project添加到workspace.

4.添加libPods.a :targets=>build phases =>linke with libraries.

5.把CocoaPods 的Xcode 配置加入到你的app項(xiàng)目中

6.依賴于CocoaPods改變你app的目標(biāo)配置歉摧。

7.添加一個(gè)構(gòu)建階段蒋搜,從您安裝到應(yīng)用程序包的任何副本中復(fù)制資源。即“腳本構(gòu)建階段”判莉,所有其他構(gòu)建階段如下:

? ? ? Shell: /bin/sh

? ? ? Script:${SRCROOT}/Pods/PodsResources.sh

注意第三步起如果CocoaPods靜態(tài)庫(kù)已經(jīng)在你的項(xiàng)目跳過(guò),這主要基于Jonah Williams對(duì)靜態(tài)庫(kù)的研究育谬。

Pods 和 Submodules

CocoaPods和git子模塊試圖解決非常相似的問(wèn)題券盅。他們都試圖簡(jiǎn)化在你項(xiàng)目中的第三方代碼。Submodules鏈接到該項(xiàng)目的特定提交上面膛檀,而CocoaPods綁定到了開(kāi)發(fā)者開(kāi)發(fā)的版本上去锰镀。

切換submodules到CocoaPods

當(dāng)你決定把所有都切換到CocoaPods上,確定你現(xiàn)在使用的所有庫(kù)都是可用的咖刃。記錄當(dāng)前使用的庫(kù)的版本號(hào)也是一個(gè)好主意泳炉,所以你可以使用同一個(gè)安裝CocoaPods。這也是一個(gè)好主意這樣做增量嚎杨,依賴依托于依賴花鹅,取代大的更改。

1.安裝CocoaPods.如果你并沒(méi)有做的話枫浙。

2.創(chuàng)建你的Podfile

3.移除submodule索引

4.在Podfile中添加你已經(jīng)移除的庫(kù)的索引

5.運(yùn)行 pod install?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末刨肃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子箩帚,更是在濱河造成了極大的恐慌真友,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,657評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件紧帕,死亡現(xiàn)場(chǎng)離奇詭異盔然,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,662評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門愈案,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)挺尾,“玉大人,你說(shuō)我怎么就攤上這事刻帚×仕唬” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 158,143評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵崇众,是天一觀的道長(zhǎng)掂僵。 經(jīng)常有香客問(wèn)我,道長(zhǎng)顷歌,這世上最難降的妖魔是什么锰蓬? 我笑而不...
    開(kāi)封第一講書人閱讀 56,732評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮眯漩,結(jié)果婚禮上芹扭,老公的妹妹穿的比我還像新娘。我一直安慰自己赦抖,他們只是感情好舱卡,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,837評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著队萤,像睡著了一般轮锥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上要尔,一...
    開(kāi)封第一講書人閱讀 50,036評(píng)論 1 291
  • 那天舍杜,我揣著相機(jī)與錄音,去河邊找鬼赵辕。 笑死既绩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的还惠。 我是一名探鬼主播饲握,決...
    沈念sama閱讀 39,126評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蚕键!你這毒婦竟也來(lái)了互拾?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,868評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嚎幸,失蹤者是張志新(化名)和其女友劉穎颜矿,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體嫉晶,經(jīng)...
    沈念sama閱讀 44,315評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡骑疆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,641評(píng)論 2 327
  • 正文 我和宋清朗相戀三年田篇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箍铭。...
    茶點(diǎn)故事閱讀 38,773評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泊柬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诈火,到底是詐尸還是另有隱情兽赁,我是刑警寧澤,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布冷守,位于F島的核電站刀崖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拍摇。R本人自食惡果不足惜亮钦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望充活。 院中可真熱鬧蜂莉,春花似錦、人聲如沸混卵。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,859評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)幕随。三九已至蚁滋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間合陵,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工澄阳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拥知,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,584評(píng)論 2 362
  • 正文 我出身青樓碎赢,卻偏偏與公主長(zhǎng)得像低剔,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子肮塞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,676評(píng)論 2 351

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