前言
? ? ? ? 很多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挫酿, 喜歡的話給個??吧。