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)庫。

有可能還需修改-ObjC块蚌、修改Objective-C++

如果SDK更新了, 我們還需要把這個(gè)SDK移除掉, 再拖入一次

正如上所述闰非,大家如果要使用第三方的SDK,需要重復(fù)以上的步驟匈子。如此麻煩又浪費(fèi)時(shí)間, 并且都是重復(fù)性的操作河胎,并沒有任何營養(yǎng)。因此, 如果想避免上述重復(fù)性的操作就可以使用CocoaPods這個(gè)工具虎敦。

CocoaPods 是一個(gè)第三方庫依賴管理工具游岳。使用一行終端命令即可達(dá)到引入第三方庫的目的政敢。CocoaPods的使用方式非常簡單。

二胚迫、CocoaPods安裝前準(zhǔn)備

CocoaPods使用Ruby語言編寫而成喷户。因此需要Ruby的環(huán)境, 慶幸的是OS X已經(jīng)集成了Ruby環(huán)境。我們所需要的做的就是通過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)行之后需要輸入電腦的密碼, 并且沒有密碼輸入的位數(shù)提醒。輸完密碼就進(jìn)行安裝了龟虎,安裝過程可能會(huì)很慢璃谨,耐心等待。

上述命令安裝完成后鲤妥,輸入以下命令, 進(jìn)行Cocoapods的建立

pod setup

如果上述命令運(yùn)行,且無錯(cuò)誤即完成了CocoaPods的安裝!

CocoaPods安裝過程中可能遇到的問題

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

打開Podfile

其中#為注釋部分

打開后, 在 target 'CocoaPods' do 與 end 之間輸入你想導(dǎo)入的框架, 我們以AFNetworking為例:

target 'CocoaPods' do

pod 'AFNetworking'

end

3.執(zhí)行cocoapods的安裝操作

同樣也是要在工程目錄下

執(zhí)行以下命令:

pod install

等其執(zhí)行完畢,即可完成第三方庫的安裝

其中還可以調(diào)用pod update方法, 也可以達(dá)到第三方庫安裝的目的, 并且會(huì)更新版本

在pod install或者pod update過程中會(huì)執(zhí)行podspec索引的更新棉安,需要等待很久底扳,因此為了提升速度可以執(zhí)行如下命令, 關(guān)掉索引的更新

pod install --no-repo-update

并且在安裝過程中, 我們不知道cocoapods做了什么, 還可以添加一個(gè)參數(shù),用來提示我們贡耽,cococapods做了哪些操作

pod install --verbose --no-repo-update

安裝完成后, 工程目錄下會(huì)多出一個(gè)白色的文件衷模,如下圖:

通過CocoaPods安裝完第三方后

之后再打開工程,就用白色的工程文件打開蒲赂,不再使用藍(lán)色的工程文件算芯。

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


打開工程

其中Pods工程目錄是用來存放第三方庫和配置文件的凳宙,上面的CocoaPods依舊是我們的工程文件, 在它之中,我們可以繼續(xù)正常的編寫代碼职祷。為了驗(yàn)證是否安裝成功, 我們可以在AppDelegate.m中引入我們所要使用的第三方庫的頭文件氏涩,如引入AFNetworking#import這里需要注意的是, 以后再引入第三方框架,要當(dāng)系統(tǒng)框架去引入用\

#import <框架頭文件.h>

4.pod搜索功能

CocoaPods上的大部分第三方框架均來自于GitHub, 因此數(shù)量也很龐大有梆,記名字是很不明智的是尖,因此,我們可以選擇通過搜索來找到自己想要尋找的第三方框架泥耀。

pod search 框架關(guān)鍵字, 如下:

pod search sdweb

通過搜索命令, 搜索到的內(nèi)容如下圖:

搜索結(jié)果

然后把你想要的框架的名字, 復(fù)制到Podfile文件中即可饺汹,Podfile文件中的第三方可以有多個(gè), 需要幾個(gè),就填入幾個(gè)痰催,CocoaPods會(huì)全部幫你下載下來兜辞。

至此, 就完成了CocoaPods的創(chuàng)建和使用迎瞧。

五 其它

當(dāng)我們想要重新安裝CocoaPods的時(shí)候,需要卸載這個(gè)東西逸吵,很簡單凶硅,只需要執(zhí)行以下命令即可:

1?$?sudo?gem?uninstall?CocoaPods

如果安裝了多個(gè)版本,選擇All扫皱,即可全部卸載足绅!?第三方版本號(hào)的各種寫法與含義:

1.pod?'AFNetworking'??????//不顯式指定依賴庫版本,表示每次都獲取最新版本

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的版本氢妈,寫這個(gè)限制和什么都不寫是一個(gè)效果,都表示使用最新版本

作者聲明:文章為轉(zhuǎn)載~整理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末段多,一起剝皮案震驚了整個(gè)濱河市首量,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌衩匣,老刑警劉巖蕾总,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異琅捏,居然都是意外死亡生百,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門柄延,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚀浆,“玉大人,你說我怎么就攤上這事搜吧∈锌。” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵滤奈,是天一觀的道長摆昧。 經(jīng)常有香客問我,道長蜒程,這世上最難降的妖魔是什么绅你? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮昭躺,結(jié)果婚禮上忌锯,老公的妹妹穿的比我還像新娘。我一直安慰自己领炫,他們只是感情好偶垮,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般似舵。 火紅的嫁衣襯著肌膚如雪脚猾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天啄枕,我揣著相機(jī)與錄音婚陪,去河邊找鬼。 笑死频祝,一個(gè)胖子當(dāng)著我的面吹牛泌参,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播常空,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼沽一,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了漓糙?” 一聲冷哼從身側(cè)響起铣缠,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昆禽,沒想到半個(gè)月后蝗蛙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡醉鳖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年捡硅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盗棵。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡壮韭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纹因,到底是詐尸還是另有隱情喷屋,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布瞭恰,位于F島的核電站屯曹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏惊畏。R本人自食惡果不足惜是牢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望陕截。 院中可真熱鬧,春花似錦批什、人聲如沸农曲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乳规。三九已至形葬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間暮的,已是汗流浹背笙以。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留冻辩,地道東北人猖腕。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像恨闪,于是被迫代替她去往敵國和親倘感。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

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

  • 項(xiàng)目組件化咙咽、平臺(tái)化是技術(shù)公司的共同目標(biāo)老玛,越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 21,477評(píng)論 0 39
  • 一钧敞、預(yù)備知識(shí) 1蜡豹、Rvm介紹:全稱 Ruby Version Manager,是安裝和管理ruby的一種工具。(下...
    xx明閱讀 1,272評(píng)論 0 2
  • CocoaPods 是什么溉苛? CocoaPods 是一個(gè)負(fù)責(zé)管理 iOS 項(xiàng)目中第三方開源庫的工具镜廉。CocoaPo...
    朝洋閱讀 25,636評(píng)論 3 51
  • 白樺林: 回來已有一個(gè)多星期,可是情結(jié)未了炊昆,不抒不快桨吊,繼續(xù)寫,關(guān)于白樺林的凤巨。 為了腦補(bǔ)秋天美麗的白樺林视乐,我從360...
    giguala閱讀 373評(píng)論 0 1
  • 桃酥姑奶奶閱讀 85評(píng)論 0 0