一、什么是CocoaPods?
前言: 思考如何引入一個(gè)第三方框架。 例如: 百度地圖SDK、友盟、ShareSDK、 信鴿推送等。
從github或某處下載第三方SDK
工程中導(dǎo)入所需要的SDK的文件 .a 或 .framework
添加SDK文件所依賴的系統(tǒng)的.framework。比如:
需要導(dǎo)入SystemConfiguration.framework、CoreLocation.framework、UIKit.framework、libsqlite3. dylib(Xcode 7.0下是tbd文件)等很多系統(tǒng)庫(kù)。
有可能還需修改-ObjC、修改Objective-C++
如果SDK更新了, 我們還需要把這個(gè)SDK移除掉, 再拖入一次
正如上所述,大家如果要使用第三方的SDK,需要重復(fù)以上的步驟。如此麻煩又浪費(fèi)時(shí)間, 并且都是重復(fù)性的操作,并沒(méi)有任何營(yíng)養(yǎng)。因此, 如果想避免上述重復(fù)性的操作就可以使用CocoaPods這個(gè)工具。
CocoaPods 是一個(gè)第三方庫(kù)依賴管理工具。使用一行終端命令即可達(dá)到引入第三方庫(kù)的目的。CocoaPods的使用方式非常簡(jiǎn)單。
二、CocoaPods安裝前準(zhǔn)備
CocoaPods使用Ruby語(yǔ)言編寫(xiě)而成。因此需要Ruby的環(huán)境, 慶幸的是OS X已經(jīng)集成了Ruby環(huán)境。我們所需要的做的就是通過(guò)gem去安裝CocoaPods即可。
首次安裝CocoaPods之前,Ruby默認(rèn)源在墻外, 因此我們需要修改下Ruby默認(rèn)使用的源:
1.查詢Ruby的源
gem source -
查詢結(jié)果如下:
*** CURRENT SOURCES ***
https://rubygems.org/
查到的這個(gè)源是在墻外, 并且淘寶為我們提供了對(duì)應(yīng)的源鏈接,因此我們需要先移除源鏈接, 再添加淘寶的源:
2.移除Ruby的源
gem source --remove https://rubygems.org/
移除結(jié)果如下:
http://rubygems.org/ removed from sources
3.添加Ruby的源(最近做了修改, 改為了https)
gem source -a https://ruby.taobao.org/
添加結(jié)果如下:
https://ruby.taobao.org/ added to sources
對(duì)源的操作完成后, 就可以安裝CocoaPods了。
三、CocoaPods安裝
運(yùn)行以下命令, 即可實(shí)現(xiàn)CocoaPods的安裝
sudo gem install cocoapods
運(yùn)行之后需要輸入電腦的密碼, 并且沒(méi)有密碼輸入的位數(shù)提醒。輸完密碼就進(jìn)行安裝了,安裝過(guò)程可能會(huì)很慢,耐心等待。
上述命令安裝完成后,輸入以下命令, 進(jìn)行Cocoapods的建立
pod setup
如果上述命令運(yùn)行,且無(wú)錯(cuò)誤即完成了CocoaPods的安裝!
CocoaPods安裝過(guò)程中可能遇到的問(wèn)題
xcrun找不到Xcode
xcrun: error: active developer path
("/Applications/Xcode.app/Contents/Developer/") does not exist, use \xcode-select --switch path/to/Xcode.app\ to specify the Xcode that you wish to use for command line developer tools (or see \man xcode-select\)
運(yùn)行以下命令, 讓xcrun的運(yùn)行路徑找到對(duì)應(yīng)的Xcode
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
四、CocoaPods的使用
1. 創(chuàng)建一個(gè)需要使用CocoaPods的工程, 并在工程目錄下創(chuàng)建Podfile文件
cd /Users/QCL/Desktop/CocoaPods
pod init
創(chuàng)建完成如下圖中, 會(huì)出現(xiàn)Podfile文件
2.編輯Podfile文件
open -a Xcode Podfile
其中#為注釋部分
打開(kāi)后, 在 target 'CocoaPods' do 與 end 之間輸入你想導(dǎo)入的框架, 我們以AFNetworking為例:
target 'CocoaPods' do
pod 'AFNetworking'
end
3.執(zhí)行cocoapods的安裝操作
同樣也是要在工程目錄下
執(zhí)行以下命令:
pod install
等其執(zhí)行完畢,即可完成第三方庫(kù)的安裝
其中還可以調(diào)用pod update方法, 也可以達(dá)到第三方庫(kù)安裝的目的, 并且會(huì)更新版本
在pod install或者pod update過(guò)程中會(huì)執(zhí)行podspec索引的更新,需要等待很久,因此為了提升速度可以執(zhí)行如下命令, 關(guān)掉索引的更新
pod install --no-repo-update
并且在安裝過(guò)程中, 我們不知道cocoapods做了什么, 還可以添加一個(gè)參數(shù),用來(lái)提示我們,cococapods做了哪些操作
pod install --verbose --no-repo-update
安裝完成后, 工程目錄下會(huì)多出一個(gè)白色的文件,如下圖:
之后再打開(kāi)工程,就用白色的工程文件打開(kāi),不再使用藍(lán)色的工程文件。
打開(kāi)之后,工程的目錄層級(jí)如下圖:
其中Pods工程目錄是用來(lái)存放第三方庫(kù)和配置文件的,上面的CocoaPods依舊是我們的工程文件, 在它之中,我們可以繼續(xù)正常的編寫(xiě)代碼。為了驗(yàn)證是否安裝成功, 我們可以在AppDelegate.m中引入我們所要使用的第三方庫(kù)的頭文件,如引入AFNetworking#import這里需要注意的是, 以后再引入第三方框架,要當(dāng)系統(tǒng)框架去引入用\
#import <框架頭文件.h>
4.pod搜索功能
CocoaPods上的大部分第三方框架均來(lái)自于GitHub, 因此數(shù)量也很龐大,記名字是很不明智的,因此,我們可以選擇通過(guò)搜索來(lái)找到自己想要尋找的第三方框架。
pod search 框架關(guān)鍵字, 如下:
pod search sdweb
通過(guò)搜索命令, 搜索到的內(nèi)容如下圖:
然后把你想要的框架的名字, 復(fù)制到Podfile文件中即可,Podfile文件中的第三方可以有多個(gè), 需要幾個(gè),就填入幾個(gè),CocoaPods會(huì)全部幫你下載下來(lái)。
至此, 就完成了CocoaPods的創(chuàng)建和使用。
五 其它
當(dāng)我們想要重新安裝CocoaPods的時(shí)候,需要卸載這個(gè)東西,很簡(jiǎn)單,只需要執(zhí)行以下命令即可:
1?$?sudo?gem?uninstall?CocoaPods
如果安裝了多個(gè)版本,選擇All,即可全部卸載!?第三方版本號(hào)的各種寫(xiě)法與含義:
1.pod?'AFNetworking'??????//不顯式指定依賴庫(kù)版本,表示每次都獲取最新版本
2.pod?'AFNetworking',??'2.0'?????//只使用2.0版本?
3.pod?'AFNetworking',?'>2.0'?????//使用高于2.0的版本?
4.pod?'AFNetworking',?'>=2.0'?????//使用大于或等于2.0的版本?
5.pod?'AFNetworking',?'<2.0'?????//使用小于2.0的版本?
6.pod?'AFNetworking',?'<=2.0'?????//使用小于或等于2.0的版本
7.pod?'AFNetworking',?'~>0.1.2'?????//使用大于等于0.1.2但小于0.2的版本,相當(dāng)于>=0.1.2并且<0.2.0
8.pod 'AFNetworking', '~>0.1'? ? //使用大于等于0.1但小于1.0的版本
9. pod 'AFNetworking', '~>0'? ? //高于0的版本,寫(xiě)這個(gè)限制和什么都不寫(xiě)是一個(gè)效果,都表示使用最新版本
作者聲明:文章為轉(zhuǎn)載~整理