一.查看下當(dāng)前ruby版本
打開終端輸入 ruby -v
(Mac OS本身自帶Ruby,但還是更新一下保險,因?yàn)榈谝淮伟惭b在沒有更新Ruby的情況下有可能失敗)
二玛迄、升級Ruby環(huán)境
sudo gem update --system
注意若更新Ruby環(huán)境錯誤輸入
sudo gem update -n /usr/local/bin --system
三:安裝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
五.安裝CocoaPods
sudo gem install cocoapods
注意:如果使用sudo gem install cocoapods 出現(xiàn)錯誤請使用下面命令:
sudo gem install -n /usr/local/bin cocoapods
或者
// 執(zhí)行下面的命令并重啟
sudo nvram boot-args="rootless=0"
sudo reboot
六单芜、 在終端中輸入如下命令來完成安裝(此步驟不是必須的)
pod setup
七.使用CocoaPods
1.創(chuàng)建一個項(xiàng)目,工程名字:TestCocoapods
2.終端進(jìn)入項(xiàng)目目錄
cd:切換路徑(進(jìn)入到項(xiàng)目文件)
3.在項(xiàng)目目錄創(chuàng)建Podfile(配置文件)
touch Podfile
4.打開編輯Podfile(配置文件)
open Podfile
5.執(zhí)行pod install.(初始化)
pod install
進(jìn)階篇(補(bǔ)充)
1.使用search命令搜索類庫名
pod search AFNetworking
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文件鄙早。