CocoaPods安裝&使用

CocoaPods簡介

CocoaPods是一個用來幫助我們管理第三方依賴庫的工具删掀。它可以解決庫與庫之間的依賴關(guān)系歼狼,下載庫的源代碼,同時通過創(chuàng)建一個Xcode的workspace來將這些第三方庫和我們的工程連接起來,供我們開發(fā)使用嚎朽。

使用CocoaPods的目的是讓我們能自動化的、集中的柬帕、直觀的管理第三方開源庫哟忍。

安裝Ruby環(huán)境

檢查Mac是否安裝Ruby和gem

在終端中輸入命令:ruby --versiongem --version

輸出如下類似提示符,則表示Ruby環(huán)境已安裝

$ ruby --version
ruby 2.0.0p643 (2015-02-25 revision 49749) [x86_64-darwin14.3.0]
$ gem --version
2.4.8

PS:Ruby是一門開發(fā)語言陷寝,gem為Ruby第三方庫管理工具锅很,CocoaPods是用Ruby寫的一個第三方工具。

若提示command not found 則需要安裝Ruby環(huán)境

  • 安裝Ruby環(huán)境需要安裝Xcode及Command Line Tools凤跑。

  • 安裝Command Line Tools:xcode-select --install

  • 安裝RVM爆安,Ruby的多版本管理工具。

    $ curl -L https://get.rvm.io | bash -s stable
    $ source ~/.rvm/scripts/rvm
    $ rvm install 2.0.0
    $ rvm use 2.0.0
    $ /bin/bash --login
    

安裝CocoaPods

使用淘寶的鏡像安裝Ruby的第三方庫仔引,修改gem的鏡像:

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

為了驗(yàn)證你的Ruby鏡像是并且僅是淘寶扔仓,可以用以下命令查看:

$ gem sources -l
# 只有在終端中出現(xiàn)下面文字才表明你上面的命令是成功的:
* CURRENT SOURCES *
https://ruby.taobao.org/

如果出現(xiàn)多個需要將其余的源刪除褐奥。

終端中執(zhí)行安裝CocoaPods

$ sudo gem install cocoapods

執(zhí)行完成后,需要初始化CocoaPods的環(huán)境

$ pod setup

CocoaPods查看安裝進(jìn)度

打開一個新的終端
$ cd ~/.cocoapods
$ du -sh *
 56K    repos

使用CocoaPods

  1. 創(chuàng)建Xcode工程并切換到該工程路徑

  2. 使用命令pod init在當(dāng)前文件夾下生成一個Podfile文件

  3. 編輯該文件翘簇,在該文件中輸入如下信息:

platform :ios, '8.0'
target 'WeiboClientDemo' do

pod 'AFNetworking', '2.5.4'
pod 'KVNProgress'

end


該文件中的命令格式為:`pod '第三庫名稱', '版本號'`

第三庫名稱撬码,名稱一定要正確,不然有可能安裝失敗版保。

版本號標(biāo)識區(qū)別

> \>= 1.0 至少版本為1.0
>
> ~> 1.0 兼容1.0版本的最新版
>
> == 1.0或1.0 都表示指定版本
4. 安裝工程依賴的第三方庫

``` shel
//輸入 pod install 安裝第三方庫
$ pod install

Updating local specs repositories
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.5.4)
Installing KVNProgress (2.2.2)
Installing SDWebImage (3.7.3)
Generating Pods project
Integrating client project
[!] Please close any current Xcode sessions and use `CocoaPodsDemo.xcworkspace` for this project from now on.
Sending stats
Pod installation complete! There are 3 dependencies from the Podfile and 3 total

//安裝成功
pods installed.

若出現(xiàn)pods installed字樣表示安裝成功耍群。

  1. 關(guān)閉Xcode工程,打開.xcworkspace文件找筝。

  2. 在工程中導(dǎo)入第三庫文件蹈垢,只需要#import <AFNetworking.h>類似的即可,開啟CocoaPods之旅袖裕。

更多用法參考本文提供的參考鏈接曹抬。

參考鏈接

  1. http://code4app.com/article/cocoapods-install-usage
  2. http://blog.csdn.net/wzzvictory/article/details/18737437
  3. http://blog.csdn.net/wzzvictory/article/details/19178709

Carthage

Carthage簡介

Carthage的目標(biāo)是用最簡單的方式來管理Cocoa第三方框架。

Carthage編譯你的依賴急鳄,并提供框架的二進(jìn)制文件谤民,但你仍然保留對項目的結(jié)構(gòu)和設(shè)置的完整控制。Carthage不會自動的修改你的項目文件或編譯設(shè)置疾宏。

Carthage只正式支持動態(tài)框架张足,動態(tài)框架能夠在任何版本的OS X上使用,但只能在iOS 8及以上版本使用坎藐。

安裝Homebrew

OS X 不可或缺的套件管理器为牍,用于安裝命令工具。

終端中執(zhí)行如下命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安裝Carthage

終端執(zhí)行命令安裝Carthage

brew update
brew install carthage

使用Carthage

  1. 創(chuàng)建Xcode工程并切換到該工程路徑

  2. 創(chuàng)建一個Cartfile岩馍,將你想要使用的框架列在里面

    github "AFNetworking/AFNetworking" ~> 3.0
    github "rs/SDWebImage"
    
  3. 運(yùn)行carthage update碉咆,將獲取依賴文件到一個Carthage.checkout文件夾,然后編譯每個依賴

  4. 在你的應(yīng)用程序target的General設(shè)置標(biāo)簽中的Embedded Binaries區(qū)域蛀恩,將框架從Carthage.build文件夾拖拽進(jìn)去疫铜。

參考鏈接

  1. http://www.cocoachina.com/ios/20141204/10528.html
  2. 官方文檔

Carthage與CocoaPods的不同

  1. Carthage只支持iOS 8及以上版本使用。

  2. 首先双谆,CocoaPods默認(rèn)會自動創(chuàng)建并更新你的應(yīng)用程序和所有依賴的Xcode workspace壳咕。Carthage使用xcodebuild來編譯框架的二進(jìn)制文件,但如何集成它們將交由用戶自己判斷顽馋。CocoaPods的方法更易于使用谓厘,但Carthage更靈活并且是非侵入性的。

  3. CocoaPods的目標(biāo)在它的README文件描述如下:

    …為提高第三方開源庫的可見性和參與度趣避,創(chuàng)建一個更中心化的生態(tài)系統(tǒng)庞呕。

    與之對照,Carthage創(chuàng)建的是去中心化的依賴管理器。它沒有總項目的列表住练,這能夠減少維護(hù)工作并且避免任何中心化帶來的問題(如中央服務(wù)器宕機(jī))地啰。不過,這樣也有一些缺點(diǎn),就是項目的發(fā)現(xiàn)將更困難,用戶將依賴于Github的趨勢頁面或者類似的代碼庫來尋找項目炉抒。

  4. CocoaPods項目同時還必須包含一個podspec文件,里面是項目的一些元數(shù)據(jù)蔚鸥,以及確定項目的編譯方式。Carthage使用xcodebuild來編譯依賴许赃,而不是將他們集成進(jìn)一個workspace止喷,因此無需類似的設(shè)定文件。不過依賴需要包含自己的Xcode工程文件來描述如何編譯混聊。

  5. 最后弹谁,我們創(chuàng)建Carthage的原因是想要一種盡可能簡單的工具——一個只關(guān)心本職工作的依賴管理器,而不是取代部分Xcode的功能句喜,或者需要讓框架作者做一些額外的工作预愤。CocoaPods提供的一些特性很棒,但由于附加的復(fù)雜性咳胃,它們將不會被包含在Carthage當(dāng)中植康。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市展懈,隨后出現(xiàn)的幾起案子销睁,更是在濱河造成了極大的恐慌,老刑警劉巖标沪,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件榄攀,死亡現(xiàn)場離奇詭異嗜傅,居然都是意外死亡金句,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門吕嘀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來违寞,“玉大人,你說我怎么就攤上這事偶房〕寐” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵棕洋,是天一觀的道長挡闰。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么摄悯? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任赞季,我火速辦了婚禮,結(jié)果婚禮上奢驯,老公的妹妹穿的比我還像新娘申钩。我一直安慰自己,他們只是感情好瘪阁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布撒遣。 她就那樣靜靜地躺著,像睡著了一般管跺。 火紅的嫁衣襯著肌膚如雪义黎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天豁跑,我揣著相機(jī)與錄音轩缤,去河邊找鬼。 笑死贩绕,一個胖子當(dāng)著我的面吹牛火的,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播淑倾,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼馏鹤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了娇哆?” 一聲冷哼從身側(cè)響起湃累,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎碍讨,沒想到半個月后治力,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡勃黍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年宵统,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片覆获。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡马澈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弄息,到底是詐尸還是另有隱情痊班,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布摹量,位于F島的核電站涤伐,受9級特大地震影響馒胆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜凝果,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一国章、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧豆村,春花似錦液兽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粗恢,卻和暖如春柑晒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背眷射。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工匙赞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妖碉。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓涌庭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親欧宜。 傳聞我的和親對象是個殘疾皇子坐榆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

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

  • 最近在使用cocoapods時夏漱,因?yàn)闆]有很系統(tǒng)的了解豪诲,導(dǎo)致要頻繁的去網(wǎng)上查閱各種資料,結(jié)果很多資料都已經(jīng)過時挂绰,或是...
    春風(fēng)十里湘閱讀 371評論 0 0
  • 營銷中有個觀點(diǎn):成交比成交金額更重要屎篱。意思是,讓客戶采取第一次購買行動很重要扮授,第一次成交的金額倒還是其次的芳室。 客戶...
    陳信誠閱讀 762評論 0 4
  • 文/唯德叔叔踢皮球,字面上的意思就是踢皮球這種球刹勃。隱含著把責(zé)任推給別人的行為。把皮球“踢”走嚎尤,就是”踢走“負(fù)擔(dān)和責(zé)...
    山頂?shù)穆曇?/span>閱讀 793評論 2 6
  • 有人問我 你還愛他嗎 我差點(diǎn)脫口而出 愛 為什么會還愛你呢 聽見你的名字還是會心頭一震 想起和你有關(guān)的過去還是會難...
    欣有蘿Jona閱讀 148評論 0 0
  • 像只小螞蟻一樣 一點(diǎn)一點(diǎn)搬寢室 想找班上男孩子幫忙 不是回家了就是不在學(xué)校 最夸張的是居然是女朋友接的 好在 來...
    打好boss好睡覺閱讀 168評論 0 0