將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?