IOS依賴管理工具CocoaPods

1.CocoaPods簡介

隨著IOS開發(fā)者的增多,業(yè)界也出現(xiàn)了為IOS程序提供依賴管理的工具,它的名字叫作CocoaPods(http://cocoapods.org/).
GitHub地址:https://github.com/CocoaPods/CocoaPods

duang

2.CocoaPods的安裝

CocoaPods的安裝方式比較簡單,Mac下自帶ruby,使用ruby的gem命令即可下載安裝:

$ sudo gem install cocoapods
$ pod setup

另外,ruby的軟件源rubygems.org因為使用亞馬遜的云服務(wù),所以被屏蔽了,需要更新一下ruby的源,下面的代碼將官方的ruby源替換成國內(nèi)淘寶的源:

gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l

還有一點需要注意,pod setup在執(zhí)行時,會輸出Setting up CocoaPods master repo,但是會等待比較久的時間,這步其實是CocoaPods在將它的信息下載到~/.cocoapods目錄下,如果你等太久,可以試著cd到那個目錄,用du -sh *來查看下載進(jìn)度.

3.使用CocoaPods的鏡像索引

所有項目的Podspec文件都托管在https://github.com/CocoaPods/Specs. 第一次執(zhí)行pod setup時,CocoaPods會將這些Podspec索引文件更新到本地的~/.cocoapods/目錄下,這個索引文件比較大,有80MB左右,所以第一次更新時非常慢.
一個叫akinliu(http://akinliu.github.io/2014/05/03/cocoapods-specs-/) 的朋友在gitcafe(http://gitcafe.com/) 和occhina(http://www.oschina.net/) 上建立了CocoaPods索引庫的鏡像,因為gitcafe和occhina都是國內(nèi)服務(wù)器,所以在執(zhí)行索引更新操作時,會快很多.如下操作可以將CocoaPods設(shè)置成使用gitcafe鏡像:

pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update

將以上代碼中的https://gitcafe.com/akuandev/Specs.git替換成http://git.oschina.net/akuandev/Specs.git即可使用occhina上的鏡像.

4.使用CocoaPods

使用時需要新建一個名為Podfile的文件,以如下格式,將依賴的庫名字依次列在文件中即可:(示例:JSONKit和AFNetworking)

platform :ios
pod 'JSONKit','~> 1.5pre'
pod 'AFNetworking','~> 2.5.0'

然后將編輯好的Podfile文件放到項目根目錄中,執(zhí)行如下命令即可:

cd "你的項目根目錄"
pod install

現(xiàn)在,所有第三方庫都已經(jīng)下載完成并且設(shè)置好了編譯參數(shù)和依賴,你只需要記住如下兩點即可:

  • 使用CocoaPods生成的*.xcworkspace文件來打開工程,而不是以前的*.xcodeproj文件
  • 每次更改了Podfile文件,都需要重新執(zhí)行一次pod update命令
5.查找第三方庫

如果不知道CocoaPods管理的庫中是否有你想要的庫,那么你可以通過pod search命令進(jìn)行查找,以下是我用pod search AFNetworking查找到的所有可用的庫:

-> AFNetworking (2.5.0)
   A delightful iOS and OS X networking framework.
   pod 'AFNetworking', '~> 2.5.0'
   - Homepage: https://github.com/AFNetworking/AFNetworking
   - Source:   https://github.com/AFNetworking/AFNetworking.git
   - Versions: 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1,
   2.2.0, 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1,
   1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3,
   1.0RC2, 1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master
   repo]
   - Sub specs:
     - AFNetworking/Serialization (2.5.0)
     - AFNetworking/Security (2.5.0)
     - AFNetworking/Reachability (2.5.0)
     - AFNetworking/NSURLConnection (2.5.0)
     - AFNetworking/NSURLSession (2.5.0)
     - AFNetworking/UIKit (2.5.0)

-> AFNetworking+AutoRetry (0.0.5)
   Auto Retries for AFNetworking requests
   pod 'AFNetworking+AutoRetry', '~> 0.0.5'
   - Homepage: https://github.com/shaioz/AFNetworking-AutoRetry
   - Source:   https://github.com/shaioz/AFNetworking-AutoRetry.git
   - Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]

-> AFNetworking+Ext (1.1)
   AFNetworking的封裝, 并提供一個 UIImageView+DYLoading  cache in fileSystem+memory
   pod 'AFNetworking+Ext', '~> 1.1'
   - Homepage: https://github.com/junhaiyang/AFNetworkingExt
   - Source:   https://github.com/junhaiyang/AFNetworkingExt.git
   - Versions: 1.1, 1.0, 0.5, 0.4, 0.3 [master repo]
   - Sub specs:
     - AFNetworking+Ext/Base (1.1)
     - AFNetworking+Ext/AFCustomRequestOperation (1.1)
     - AFNetworking+Ext/AFDownloadRequestOperation (1.1)
     - AFNetworking+Ext/AFTextResponseSerializer (1.1)
     - AFNetworking+Ext/example (1.1)
     - AFNetworking+Ext/UIKit (1.1)
     - AFNetworking+Ext/UIKit/UIImageView+DYLoading (1.1)

-> AFNetworking+ImageActivityIndicator (1.0.1)
   AFNetworking+ImageActivityIndicator makes it easy to show an activity
   indicator while an image view's image is loading using AFNetworking.
   pod 'AFNetworking+ImageActivityIndicator', '~> 1.0.1'
   - Homepage:
   https://github.com/JRG-Developer/AFNetworking-ImageActivityIndicator
   - Source:  
   https://github.com/JRG-Developer/AFNetworking-ImageActivityIndicator.git
   - Versions: 1.0.1, 1.0.0 [master repo]

-> AFNetworking+SingleBlock (0.0.1)
   Categories that aggregate the success and failure block in one single
   solution
   pod 'AFNetworking+SingleBlock', '~> 0.0.1'
   - Homepage: https://github.com/acerbetti/AFNetworking-SingleBlock
   - Source:   https://github.com/acerbetti/AFNetworking-SingleBlock.git
   - Versions: 0.0.1 [master repo]

-> AFNetworking+streaming (0.6)
   A very quick extension to AFNetworking that adds stream based parsing
   pod 'AFNetworking+streaming', '~> 0.6'
   - Homepage: https://github.com/deanWombourne/AFNetworking-streaming
   - Source:   https://github.com/deanWombourne/AFNetworking-streaming.git
   - Versions: 0.6, 0.5, 0.4, 0.3, 0.2, 0.1 [master repo]
   - Sub specs:
     - AFNetworking+streaming/Core (0.6)
     - AFNetworking+streaming/Json (0.6)
// ...此處省略若干行

@唐巧 <IOS開發(fā)進(jìn)階>



End

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子瓢省,更是在濱河造成了極大的恐慌勾给,老刑警劉巖皇型,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舔腾,死亡現(xiàn)場離奇詭異岛杀,居然都是意外死亡,警方通過查閱死者的電腦和手機壶唤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門雳灵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闸盔,你說我怎么就攤上這事悯辙。” “怎么了迎吵?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵躲撰,是天一觀的道長。 經(jīng)常有香客問我击费,道長拢蛋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任蔫巩,我火速辦了婚禮谆棱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘圆仔。我一直安慰自己础锐,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布荧缘。 她就那樣靜靜地躺著皆警,像睡著了一般。 火紅的嫁衣襯著肌膚如雪截粗。 梳的紋絲不亂的頭發(fā)上信姓,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機與錄音绸罗,去河邊找鬼意推。 笑死,一個胖子當(dāng)著我的面吹牛珊蟀,可吹牛的內(nèi)容都是我干的菊值。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼育灸,長吁一口氣:“原來是場噩夢啊……” “哼腻窒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起磅崭,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤儿子,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后砸喻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柔逼,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡蒋譬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了愉适。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片犯助。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖维咸,靈堂內(nèi)的尸體忽然破棺而出也切,到底是詐尸還是另有隱情,我是刑警寧澤腰湾,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站疆股,受9級特大地震影響费坊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旬痹,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一附井、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧两残,春花似錦永毅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至崔赌,卻和暖如春意蛀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背健芭。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工县钥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人慈迈。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓若贮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親痒留。 傳聞我的和親對象是個殘疾皇子谴麦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

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