一碧浊、什么是CocoaPods
CocoaPods是iOS項(xiàng)目的依賴管理工具涂邀,該項(xiàng)目源碼在Github上管理。開發(fā)iOS項(xiàng)目不可避免地要使用第三方開源庫箱锐,CocoaPods的出現(xiàn)使得我們方便的管理這些第三方開源庫比勉。
在使用CocoaPods之前,開發(fā)項(xiàng)目需要用到第三方開源庫的時候驹止,我們需要
1.把開源庫的源代碼復(fù)制到項(xiàng)目中
2.添加一些依賴框架和動態(tài)庫
3.設(shè)置-ObjC浩聋,-fno-objc-arc等參數(shù)
4.管理他們的更新
在使用CocoaPods后,我們只需要把用到的開源庫放到一個名為Podfile的文件中臊恋,然后執(zhí)行pod install衣洁。Cocoapods就會自動將這些第三方開源庫的源碼下載下來,并且為我們的工程設(shè)置好響應(yīng)的系統(tǒng)依賴和編譯參數(shù)抖仅。
二坊夫、CocoaPods的原理
CocoaPods的原理是將所有的依賴庫都放到另一個名為Pods的項(xiàng)目中,然后讓主項(xiàng)目依賴Pods項(xiàng)目撤卢,這樣环凿,源碼管理工作都從主項(xiàng)目移到了Pods項(xiàng)目中。Pods項(xiàng)目最終會編譯成一個名為libPods.a的文件放吩,主項(xiàng)目只需要依賴這個.a文件即可智听。
三、CocoaPods的安裝
CocoaPods可以方便地通過Mac自帶的RubyGems安裝屎慢。
打開Terminal瞭稼,然后鍵入以下命令:
$ sudo gem install cocoapods
或者可以使用 brew 來安裝
$ brew install cocoapods
但是,在終端中敲入這個命令之后腻惠,會發(fā)現(xiàn)半天沒有任何反應(yīng)环肘。
這是因?yàn)閞uby的軟件源rubygems.org因?yàn)槭褂脕嗰R遜的云服務(wù),被我天朝屏蔽了集灌,需要更新一下ruby的源悔雹,用ruby-china的Ruby鏡像來訪問cocoapods,過程如下:
$ gem sources -l (查看當(dāng)前ruby的源)
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://gems.ruby-china.com/
$ gem sources -l
只有在終端中出現(xiàn)下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES ***
查詢當(dāng)前gem版本
$ gem -v
如果gem太老欣喧,可以嘗試用如下命令升級gem
$ sudo gem update --system
升級成功后會提示: RubyGems system software updated
ps:一般都能安裝成功腌零,如果提示報(bào)錯如下:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fuzzy_match
那么替換安裝命令為:(OS X 10.11以后版本可能會出現(xiàn))
$ sudo gem install -n /usr/local/bin cocoapods
想知道自己有沒有安裝完成,可以在終端輸入以下命令:
$ pod --version
顯示出版本就說明成功了唆阿。
注:
Cocoapods 目前在 Mac M1 架構(gòu)上可能還有一些兼容問題(我們建議使用brew install cocoapods來安裝 Cocoapods)益涧。如果你在安裝 pods 依賴時出現(xiàn)問題,可以嘗試運(yùn)行下面的命令:
sudo arch -x86_64 gem install ffi
arch -x86_64 pod install
以上命令會安裝ffi包驯鳖,用于在安裝和裝載 pods 時調(diào)用合適的系統(tǒng)架構(gòu)闲询。
四久免、Cocoapods的使用
進(jìn)入工程所在的目錄(工程根目錄)
執(zhí)行命令 pod init
會生成一個Podfile文件
注:從1.8版本開始CocoaPods將默認(rèn)源切換到了CDN服務(wù),不需要將整個repo master同步到本地才能正常使用pods而是用按需下載即可扭弧。
查看遠(yuǎn)程源列表:pod repo list
master
- Type: git (master)
- URL: https://github.com/CocoaPods/Specs.git
- Path: /Users/lx/.cocoapods/repos/master
trunk
- Type: CDN
- URL: https://cdn.cocoapods.org/
- Path: /Users/lx/.cocoapods/repos/trunk
1.添加源
source 'https://cdn.cocoapods.org/'
或
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/Artsy/Specs.git'
platform :ios, '9.0'
inhibit_all_warnings!
target 'MyApp' do
end
2.如果之前安裝過cocoapods阎姥,先刪除master,保留CDN Trunk
pod repo remove master
注:存在老版本cocoapods鸽捻,直接將.cocoapods文件夾刪除 重新$ sudo gem install cocoapods
安裝比較穩(wěn)妥
3.嘗試ping https://raw.githubusercontent.com
如果不通可以使用SwitchHosts
切換CDN節(jié)點(diǎn)嘗試
4.正常使用pod
pod search呼巴、pod install、pod update
克隆到本地
pod repo add cocoapods https://github.com/CocoaPods/Specs.git
git clone ......