CocoaPods

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/

為了驗證你的Ruby鏡像是并且僅是淘寶瓦哎,可以用以下命令查看:

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

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

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

$ sudo gem install cocoapods

sudo gem install -n /usr/local/bin cocoapods

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

$ pod setup

使用CocoaPods

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

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

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

    $ vim Podfile
    platform :ios, '7.0'
    pod "AFNetworking", "~> 2.5.4"
    pod 'SDWebImage'
    pod 'KVNProgress'
    

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

    第三庫名稱,名稱一定要正確愉适,不然有可能安裝失敗犯助。

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

    >= 1.0 至少版本為1.0

    ~> 1.0 兼容1.0版本的最新版

    == 1.0或1.0 都表示指定版本

  4. 安裝工程依賴的第三方庫

    $ 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字樣表示安裝成功。

  5. 關(guān)閉Xcode工程维咸,打開.xcworkspace文件剂买。

  6. 在工程中導(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ī))。不過野宜,這樣也有一些缺點扫步,就是項目的發(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閱讀 223,207評論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異轨功,居然都是意外死亡旭斥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評論 3 400
  • 文/潘曉璐 我一進(jìn)店門古涧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來垂券,“玉大人,你說我怎么就攤上這事羡滑」阶Γ” “怎么了卒暂?”我有些...
    開封第一講書人閱讀 170,031評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長娄帖。 經(jīng)常有香客問我,道長昙楚,這世上最難降的妖魔是什么近速? 我笑而不...
    開封第一講書人閱讀 60,334評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮堪旧,結(jié)果婚禮上削葱,老公的妹妹穿的比我還像新娘。我一直安慰自己淳梦,他們只是感情好析砸,可當(dāng)我...
    茶點故事閱讀 69,322評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著爆袍,像睡著了一般首繁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陨囊,一...
    開封第一講書人閱讀 52,895評論 1 314
  • 那天弦疮,我揣著相機(jī)與錄音,去河邊找鬼蜘醋。 笑死胁塞,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的压语。 我是一名探鬼主播啸罢,決...
    沈念sama閱讀 41,300評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼胎食!你這毒婦竟也來了扰才?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,264評論 0 277
  • 序言:老撾萬榮一對情侶失蹤斥季,失蹤者是張志新(化名)和其女友劉穎训桶,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酣倾,經(jīng)...
    沈念sama閱讀 46,784評論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡舵揭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,870評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了躁锡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片午绳。...
    茶點故事閱讀 40,989評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖映之,靈堂內(nèi)的尸體忽然破棺而出拦焚,到底是詐尸還是另有隱情蜡坊,我是刑警寧澤,帶...
    沈念sama閱讀 36,649評論 5 351
  • 正文 年R本政府宣布赎败,位于F島的核電站秕衙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏僵刮。R本人自食惡果不足惜据忘,卻給世界環(huán)境...
    茶點故事閱讀 42,331評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搞糕。 院中可真熱鬧勇吊,春花似錦、人聲如沸窍仰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驹吮。三九已至针史,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钥屈,已是汗流浹背悟民。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留篷就,地道東北人射亏。 一個月前我還...
    沈念sama閱讀 49,452評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像竭业,于是被迫代替她去往敵國和親智润。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,995評論 2 361

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

  • CocoaPods 是什么未辆? CocoaPods 是一個負(fù)責(zé)管理 iOS 項目中第三方開源庫的工具窟绷。CocoaPo...
    朝洋閱讀 25,699評論 3 51
  • 一、iOS和OSX中添加第三方依賴庫1.1 CocoaPods介紹1.2 Carthage介紹1.3 CocoaP...
    小米鍋巴閱讀 2,220評論 0 8
  • 那是初春的天氣咐柜。因為是節(jié)假日兼蜈,街上來來往往的人很多。路過那條小吃街拙友,就像路過某個人的世界一樣为狸;只是那條街經(jīng)常路...
    Ailai閱讀 253評論 0 4
  • Makefile加載verdi波形方法 1.編譯參數(shù)增加verdi的PLI,使用32位編譯的去掉64遗契。 2.仿真運(yùn)...
    500強(qiáng)低級工程師閱讀 19,427評論 0 6