cocoaPods總結(jié)

一、什么是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文件

創(chuàng)建完P(guān)odfile

2.編輯Podfile文件

open -a Xcode Podfile

打開(kāi)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è)白色的文件,如下圖:

通過(guò)CocoaPods安裝完第三方后

之后再打開(kāi)工程,就用白色的工程文件打開(kāi),不再使用藍(lán)色的工程文件。

打開(kāi)之后,工程的目錄層級(jí)如下圖:


打開(kāi)工程

其中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)容如下圖:

搜索結(jié)果

然后把你想要的框架的名字, 復(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)載~整理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評(píng)論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,489評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 178,290評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,776評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,510評(píng)論 6 412
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,866評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 43,036評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,585評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,331評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,536評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,754評(píng)論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,154評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,469評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,273評(píng)論 3 399
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,505評(píng)論 2 379

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