如何使用Carthage管理iOS依賴庫



前言

? ? ? ? 很多ios開發(fā)者大概對CocoaPods并不陌生本谜,我們幾乎已經(jīng)習慣了在pod文件中添加一行即可將一個庫導入到自己的工程中,不得不說嘉涌,在ios開發(fā)的歷史中CocoaPods功不可沒穷劈,即便在未來它也會在開發(fā)者中占據(jù)半壁江山。但是在這里我向大家介紹一個新的第三方庫管理工具-Carthage冤荆,不管你是菜鳥還是老鳥欧瘪,都希望這篇文章能為你打開一個新的世界。

? ? ? ? 很多人會問了匙赞,自己用CocoaPods意境習慣了,并沒有發(fā)現(xiàn)什么不妥妖碉,為什么要使用carthage呢涌庭? 所以為了解開大家的疑問,我會首先介紹這兩個第三方庫管理工具的不同欧宜,讓大家對這顆剛剛崛起的新星有一個初步的了解坐榆。

? ? ? 說到Carthage,就要先說swift,2014年蘋果發(fā)布swift初期冗茸,用swift編寫的第三方庫就只能通過拖動源代碼到自己的項目中才能被調(diào)用席镀, 由于當時只有寥寥無幾的開源庫,且不能打包夏漱,加上swift1.0并不是那么好用豪诲,許多人對swift持著觀望的態(tài)度。隨著swift逐步趨于穩(wěn)定挂绰,并且從ios8.0開始支持將自己寫的swift打包成framework屎篱,越來越多的純swift編寫框架開始出現(xiàn),就在這時候carthage突然出現(xiàn)在人們的視野中葵蒂,而且陸陸續(xù)續(xù)幾乎所有的開源框架都開始支持carthage交播。

? ? ? Carthage的github主頁為 ?https://github.com/Carthage/Carthage.git ? 里面其實對大家的疑問都有著詳盡的解答,介于一些朋友英文不太好践付,這里我就用中文介紹一下Carthage和CocoaPods的不同:

? ? ? 首先秦士,CocoaPods會直接創(chuàng)建和修改項目的workspace配置,一切都是為了便捷永高,我們只需要修改pod文件并不需要過多的關(guān)心其他事情隧土,CocoaPods創(chuàng)建的是高度集成的項目。 而Carthage的特點是靈活命爬,耦合度不高次洼,集成時不需要集成相應的project,不需要創(chuàng)建workspace,而僅僅需要依賴打包好的framework文件即可遇骑。

? ? ? 其次卖毁,CocoaPods相對來說功能要比Carthage多很多,在國內(nèi)由于墻的原因,我們都改成了淘寶的源來更新CocoaPods亥啦,相信我炭剪,如果你不翻墻,很多東西還是不能用翔脱,更新不下來奴拦,版本錯誤等一系列原因會讓你不得不放棄一些看起來非常好用的第三方庫。而Carthage似乎只需要從github上下載項目即可届吁,配置更是簡單错妖,使用的時候項目干干凈凈,所有的第三方庫就像蘋果原生的framework一樣美好疚沐,從此你不再需要擔新CocoaPods的庫用不了暂氯,不用花大量時間去修復用CocoaPods打包時出現(xiàn)的各種問題,如果你用過CocoaPods亮蛔,當你開始用Carthage的時候痴施,你會愛上這個工具的。


安裝使用Carthage

? ? ? 好了究流,說了這么多辣吃,下面我就開始介紹如何使用Carthage.

安裝Carthage只需要打開終端,輸入如下指令:

$?brew?update

$?brew?install?carthage

如果你不喜歡使用終端芬探,也可以從網(wǎng)站https://github.com/Carthage/Carthage/releases下載最新版的Carthage.pkg來更新神得。

當你安裝好Carthage后,在終端執(zhí)行

$ carthage version

即可看到當前的carthage版本, 當我寫這篇文章的時候偷仿,Carthage的版本為0.11.0 循头。

現(xiàn)在,你已經(jīng)安裝好了Carthage炎疆,接下來就是在你的項目中使用carthage了:

1卡骂、通過終端進入到項目所在的文件夾:

$ cd ~/Path/Project

后面的路徑替換成你的項目所在的路徑即可

2、創(chuàng)建一個空的carthage文件:

$ touch Cartfile

此時你的項目文件夾里會創(chuàng)建一個名為Cartfile的文件形入。

3全跨、使用xcode打開cartfile文件

$ open -a Xcode Cartfile

并在打開的文件中加入以下內(nèi)容

github "Alamofire/Alamofire" ~> 3.0

github "SwiftyJSON/SwiftyJSON"

版本的含義

~> 3.0 表示使用版本3.0以上但是低于4.0的最新版本,如3.5, 3.9

== 3.0 表示使用3.0版本

>= 3.0表示使用3.0或更高的版本

如果你沒有指明版本號亿遂,則會自動使用最新的版本

4浓若、保存并關(guān)閉cart file文件,在終端執(zhí)行命令

$ carthage update --platform iOS

carthage會為你下載和編譯所需要的第三方庫蛇数,當命令執(zhí)行完畢挪钓,在你的項目文件夾中會創(chuàng)建一個名為Carthage的文件夾

在 ~/Carthage/Build/iOS里會出現(xiàn)xxx.framework文件已經(jīng)為你創(chuàng)建好了。

當然耳舅,你也可以通過命令行進入此文件夾:

$ open Carthage

5碌上、現(xiàn)在打開你的項目倚评,點擊project,選擇target, 再選擇上方的General馏予,將需要的framework文件拖到 Linked frameworks and Binaries內(nèi)

6天梧、點擊Build Phrase tab選項,添加相應的run script

(感謝@TommyYaphetS指出新版本的問題霞丧,如果文章有誤或者大家使用時有任何問題可以給我留言)

如果你使用的是0.11之后的版本呢岗,可能會報錯:

/bin/sh failed with exit code 1

你需要使用下面的方式來配置即可:


此時,你已經(jīng)可以使用導入的第三方庫了

如需要使用Alamofire和SwiftyJSON,就在相應的類前添加

import Alamofire

import SwiftyJSON

即可蛹尝。

? ? ? 現(xiàn)在后豫,就開始享受Carthage吧。


如有疑問可以給我發(fā)郵件: lichunyu@vip.qq.com

另外推薦我開發(fā)的純swift? coredata庫? https://github.com/leacode/LCYCoreDataHelper.git 突那, 已支持使用Carthage挫酿, 喜歡的話給個??吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末陨收,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鸵赖,更是在濱河造成了極大的恐慌务漩,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件它褪,死亡現(xiàn)場離奇詭異饵骨,居然都是意外死亡,警方通過查閱死者的電腦和手機茫打,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門居触,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人老赤,你說我怎么就攤上這事轮洋。” “怎么了抬旺?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵弊予,是天一觀的道長。 經(jīng)常有香客問我开财,道長汉柒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任责鳍,我火速辦了婚禮碾褂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘历葛。我一直安慰自己正塌,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著传货,像睡著了一般屎鳍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上问裕,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天逮壁,我揣著相機與錄音,去河邊找鬼粮宛。 笑死窥淆,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的巍杈。 我是一名探鬼主播忧饭,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼筷畦!你這毒婦竟也來了词裤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤鳖宾,失蹤者是張志新(化名)和其女友劉穎吼砂,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鼎文,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡渔肩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拇惋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片周偎。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖撑帖,靈堂內(nèi)的尸體忽然破棺而出蓉坎,到底是詐尸還是另有隱情,我是刑警寧澤胡嘿,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布袍嬉,位于F島的核電站,受9級特大地震影響灶平,放射性物質(zhì)發(fā)生泄漏伺通。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一逢享、第九天 我趴在偏房一處隱蔽的房頂上張望罐监。 院中可真熱鬧,春花似錦瞒爬、人聲如沸弓柱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矢空。三九已至航罗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屁药,已是汗流浹背粥血。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留酿箭,地道東北人复亏。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像缭嫡,于是被迫代替她去往敵國和親缔御。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

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

  • 近年來我總覺得仍處在十五歲的年紀妇蛀,偶爾反應過來自己已經(jīng)虛歲21耕突,都覺得無比得詫異。在腦海中簡單分析了下原因评架,大致如...
    王_鐘_毓閱讀 484評論 0 1
  • 我記得小時候的自己就喜歡毛茸茸的小動物眷茁,偶爾夢里也會出現(xiàn)自己小小的身影追著賣小雞仔的自行車跟家人要彩色的小...
    朗朗讀書者閱讀 345評論 2 1