Cocoapods安裝步驟和使用

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

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

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

二、升級(jí)Ruby環(huán)境

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

三:安裝CocoaPods時(shí)我們要訪問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 
安裝并出錯(cuò).png
注意:如果使用sudo gem install cocoapods 出現(xiàn)錯(cuò)誤請(qǐng)使用下面命令:
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)建一個(gè)項(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文件編輯時(shí),第三方庫版本號(hào)的各種寫法:
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的版本,寫這個(gè)限制和什么都不寫是一個(gè)效果,都表示使用最新版本
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的時(shí)候,都會(huì)把版本的信息寫進(jìn)podfile.lock中,podfile.lock會(huì)追蹤這些版本,并且鎖定這些版本.當(dāng)你用這個(gè)命令的時(shí)候,他只會(huì)下載Podfile.lock中不存在的三方庫.他也只會(huì)去下載Podfile.lock中記錄的版本,而不會(huì)是檢測(cè)一個(gè)更新的版本.如果沒有Podfile.lock中沒有指定版本,他會(huì)去搜索Podfile文件中對(duì)應(yīng)的版本,如果不指定版本,默認(rèn)為最新版本.
2.該命令是在你第一次在項(xiàng)目中獲取庫的時(shí)候使用,并且每次對(duì)的Podfile文件編輯的時(shí)候(添加、修改、刪除)使用。
3.每次運(yùn)行pod install命令后,都會(huì)下載安裝新的庫,并且會(huì)修改Podfile.lock文件中記錄。
4.Podfile.lock文件的作用就是追蹤和鎖定這些苦的版本的。
運(yùn)行pod install后,它只是僅僅安裝Podfile文件中的指定版本的庫而已。并不會(huì)去檢查和更新最新的版本。

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

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



5.項(xiàng)目存在多個(gè)Target的時(shí)候,需要配置Podfile文件來支持新增加的Target,否則只支持項(xiàng)目默認(rèn)建立時(shí)生成的Target
a.如果新建一個(gè)Target,命名為TestCocoapods2,并且TestCocoapods2與TestCocoapods兩個(gè)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.工程的根目錄下多了三個(gè)東西:CocoaPodsDemo.xcworkspace、Podfile.lock文件和Pods目錄。
提示我們從現(xiàn)在起,我們需要使用CocoaPodsDemo.xcworkspace文件來進(jìn)行開發(fā)。對(duì)于Podfile.lock需要了解幾點(diǎn):

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

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

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

原來的工程設(shè)置已經(jīng)被更改了,這時(shí)候我們直接打開原來的工程文件去編譯就會(huì)報(bào)錯(cuò),只能使用新生成的workspace來進(jìn)行項(xiàng)目管理。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容