Cocoapods安裝步驟和使用

一.查看下當(dāng)前ruby版本

打開終端輸入 ruby -v
查看當(dāng)前ruby版本.png

(Mac OS本身自帶Ruby,但還是更新一下保險,因?yàn)榈谝淮伟惭b在沒有更新Ruby的情況下有可能失敗)

二玛迄、升級Ruby環(huán)境

sudo gem update --system
升級ruby環(huán)境.png
注意若更新Ruby環(huán)境錯誤輸入
sudo gem update -n /usr/local/bin --system
若更新Ruby環(huán)境錯誤輸入.png

三:安裝CocoaPods時我們要訪問cocoapods.org苗踪,用淘寶的RubyGems鏡像來代替官方版本,執(zhí)行以下命令:

gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

四.驗(yàn)證是否更換成功

gem sources -l
更換成功.png

五.安裝CocoaPods

sudo gem install cocoapods 
安裝并出錯.png
注意:如果使用sudo gem install cocoapods 出現(xiàn)錯誤請使用下面命令:
sudo gem install -n /usr/local/bin cocoapods
正常執(zhí)行.png

或者

// 執(zhí)行下面的命令并重啟
sudo nvram boot-args="rootless=0"
sudo reboot

六单芜、 在終端中輸入如下命令來完成安裝(此步驟不是必須的)

pod setup
下載完成.png

七.使用CocoaPods

1.創(chuàng)建一個項(xiàng)目,工程名字:TestCocoapods

項(xiàng)目.png

2.終端進(jìn)入項(xiàng)目目錄

cd:切換路徑(進(jìn)入到項(xiàng)目文件)
進(jìn)入項(xiàng)目文件.png

3.在項(xiàng)目目錄創(chuàng)建Podfile(配置文件)

touch Podfile
創(chuàng)建配置文件.png

4.打開編輯Podfile(配置文件)

open Podfile
編輯配置文件1.png
配置并保存2.png

5.執(zhí)行pod install.(初始化)

pod install
完成.png

進(jìn)階篇(補(bǔ)充)

1.使用search命令搜索類庫名
 pod search AFNetworking
查看第三方版本.png
2.關(guān)于Podfile文件編輯時,第三方庫版本號的各種寫法:
pod ‘AFNetworking’      //不顯式指定依賴庫版本,表示每次都獲取最新版本
pod ‘AFNetworking’,  ‘2.0’     //只使用2.0版本
pod ‘AFNetworking’, ‘>2.0′     //使用高于2.0的版本
pod ‘AFNetworking’, ‘>=2.0′     //使用大于或等于2.0的版本
pod ‘AFNetworking’, ‘<2.0′     //使用小于2.0的版本
pod ‘AFNetworking’, ‘<=2.0′     //使用小于或等于2.0的版本
pod ‘AFNetworking’, ‘~>0.1.2′     //使用大于等于0.1.2但小于0.2的版本洗贰,相當(dāng)于>=0.1.2并且<0.2.0
pod ‘AFNetworking’, ‘~>0.1′     //使用大于等于0.1但小于1.0的版本
pod ‘AFNetworking’, ‘~>0′     //高于0的版本污淋,寫這個限制和什么都不寫是一個效果柿隙,都表示使用最新版本
3.如何從本地添加私有三方庫呢叶洞?(如何創(chuàng)建私有三方庫呢?)
//1.從本地文件夾添加
pod ’ AFNetworking’, :path => ‘~/Documents/AFNetworking'
//2.從主分支添加
pod ‘ AFNetworking’, :git => ’https://github.com/AFNetworking/AFNetworking.git'
//3.從次分支添加
pod'AFNetworking',:git=>'https://github.com/AFNetworking/AFNetworking.git',:branch=>'dev'
//4.用指定的tag
pod'AFNetworking',:git=>'https://github.com/AFNetworking/AFNetworking.git',:tag=>'3.1.0'
//5.用指定的commit
pod'AFNetworking',:git=>'https://github.com/AFNetworking/AFNetworking.git',:commit=>'0f506b1c45'

4.pod update 和 pod install的區(qū)別
pod install:
1.每次如果下載新的pods的時候,都會把版本的信息寫進(jìn)podfile.lock中,podfile.lock會追蹤這些版本,并且鎖定這些版本.當(dāng)你用這個命令的時候,他只會下載Podfile.lock中不存在的三方庫.他也只會去下載Podfile.lock中記錄的版本,而不會是檢測一個更新的版本.如果沒有Podfile.lock中沒有指定版本,他會去搜索Podfile文件中對應(yīng)的版本,如果不指定版本,默認(rèn)為最新版本.
2.該命令是在你第一次在項(xiàng)目中獲取庫的時候使用禀崖,并且每次對的Podfile文件編輯的時候(添加衩辟、修改、刪除)使用波附。
3.每次運(yùn)行pod install命令后艺晴,都會下載安裝新的庫昼钻,并且會修改Podfile.lock文件中記錄。
4.Podfile.lock文件的作用就是追蹤和鎖定這些苦的版本的财饥。
運(yùn)行pod install后换吧,它只是僅僅安裝Podfile文件中的指定版本的庫而已。并不會去檢查和更新最新的版本钥星。

pod update:
1.會直接去找最新的三方庫,而不會去管Podfile.lock中的版本,他會一直下載最新版本,如果你指定了版本,他會下載你指定版本中最新的版本.如果使用 pod update,那么他會將你 Podfile中的所有三方庫都更新成最新的版本.而且他會把Podfile.lock中的版本更改成對應(yīng)的版本.
2.該命令是盡可能的更新最新的三方庫。pod update PODNAME是指定更新這個庫的最新版本满着。前提是要符合Podfile對應(yīng)庫的版本限制谦炒。如果沒有加pod ‘myPod’, ‘~>1.2’這種版本限制。則會更新最新的版本风喇。
3.如果使用pod update 不帶PODNAME宁改,CocoaPods將會去更新Podfile文件的所有的庫的最新版本。

pod install 和pod update使用場景:
1.使用pod update PODNAME可以去更新一個庫的指定版本(檢查相應(yīng)的庫是否存在更新的版本魂莫,并且更新),相對應(yīng)的还蹲,使用pod install將不會更新那些已經(jīng)下載安裝了的庫。
2.當(dāng)你在Podfile中添加了一個新的庫時耙考,你應(yīng)該使用pod install命令谜喊,而不是pod udpate,這樣安裝了新增的庫倦始,也不會重復(fù)安裝已經(jīng)存在的庫斗遏。
3.使用pod update僅僅只是去更新指定庫的版本(或者全部庫)。



5.項(xiàng)目存在多個Target的時候,需要配置Podfile文件來支持新增加的Target,否則只支持項(xiàng)目默認(rèn)建立時生成的Target
a.如果新建一個Target,命名為TestCocoapods2,并且TestCocoapods2與TestCocoapods兩個Target所需要的第三方支持相同,也就是使用相同的Pods依賴庫,則可以使用

link_with關(guān)鍵字:

link_with 'TestCocoapods', 'TestCocoapods2'  
platform :ios, '8.0'
use_frameworks!   
pod 'AFNetworking', '~> 2.0' 
b.如果不同的Target需要不同的依賴庫
platform :ios, '8.0'
use_frameworks! 
target :'TestCocoapods' do  
pod 'Reachability'  
pod 'SBJson'     
pod 'AFNetworking'   
end    
    
target :'TestCocoapods2' do  
pod 'OpenUDID'   
end
c.OC版本如下:
platform :ios, '8.0'  
target '工程名' do  
pod 'AFNetworking', '~> 3.0'  
end 
d.Swift版本如下:
platform :ios, '10.0'  
use_frameworks!  
target '<Your Target Name>' do  
pod 'SnapKit', '~> 3.0.2'  
end 
6.工程的根目錄下多了三個東西:CocoaPodsDemo.xcworkspace鞋邑、Podfile.lock文件和Pods目錄诵次。
提示我們從現(xiàn)在起,我們需要使用CocoaPodsDemo.xcworkspace文件來進(jìn)行開發(fā)枚碗。對于Podfile.lock需要了解幾點(diǎn):

1:第一次 pod install 時生成記錄每個 Pod 版本
2:Podfile.lock 鎖定當(dāng)前各依賴庫的版本之后 pod install 不會更改版本pod update 才會改版本
3:多人協(xié)作時防止第三方庫升級時造成版本不一致

對于工程發(fā)生的變化逾一,有幾點(diǎn)需要理解:

1:第三方庫會被編譯成靜態(tài)庫供我們正真的工程使用
CocoaPods會將所有的第三方庫以target的方式組成一個名為Pods的工程,該工程就放在剛才新生成的Pods目錄下肮雨。整個第三方庫工程會生成一個名稱為libPods.a的靜態(tài)庫提供給我們自己的CocoaPodsTest工程使用遵堵。
2:我們的工程和第三方庫所在的工程會由一個新生成的workspace管理
為了方便我們直觀的管理工程和第三方庫,CocoaPodsTest工程和Pods工程會被以workspace的形式組織和管理酷含,也就是我們剛才看到的CocoaPodsTest.xcworkspace文件鄙早。

原來的工程設(shè)置已經(jīng)被更改了,這時候我們直接打開原來的工程文件去編譯就會報錯椅亚,只能使用新生成的workspace來進(jìn)行項(xiàng)目管理限番。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市呀舔,隨后出現(xiàn)的幾起案子弥虐,更是在濱河造成了極大的恐慌扩灯,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霜瘪,死亡現(xiàn)場離奇詭異珠插,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)颖对,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門捻撑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缤底,你說我怎么就攤上這事顾患。” “怎么了个唧?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵江解,是天一觀的道長。 經(jīng)常有香客問我徙歼,道長犁河,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任魄梯,我火速辦了婚禮桨螺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘画恰。我一直安慰自己彭谁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布允扇。 她就那樣靜靜地躺著缠局,像睡著了一般。 火紅的嫁衣襯著肌膚如雪考润。 梳的紋絲不亂的頭發(fā)上狭园,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機(jī)與錄音糊治,去河邊找鬼唱矛。 笑死,一個胖子當(dāng)著我的面吹牛井辜,可吹牛的內(nèi)容都是我干的绎谦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼粥脚,長吁一口氣:“原來是場噩夢啊……” “哼窃肠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起刷允,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤冤留,失蹤者是張志新(化名)和其女友劉穎碧囊,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纤怒,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡糯而,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了泊窘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熄驼。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖州既,靈堂內(nèi)的尸體忽然破棺而出谜洽,到底是詐尸還是另有隱情,我是刑警寧澤吴叶,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站序臂,受9級特大地震影響蚌卤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奥秆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一逊彭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧构订,春花似錦侮叮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至亥宿,卻和暖如春卸勺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背烫扼。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工曙求, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人映企。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓悟狱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親堰氓。 傳聞我的和親對象是個殘疾皇子挤渐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345

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