原文鏈接:http://www.lxweimin.com/p/5ccde5f22a17
前言
很多ios開發者大概對CocoaPods并不陌生,我們幾乎已經習慣了在pod文件中添加一行即可將一個庫導入到自己的工程中,不得不說,在ios開發的歷史中CocoaPods功不可沒,即便在未來它也會在開發者中占據半壁江山。但是在這里我向大家介紹一個新的第三方庫管理工具-Carthage,不管你是菜鳥還是老鳥,都希望這篇文章能為你打開一個新的世界。
很多人會問了,自己用CocoaPods意境習慣了,并沒有發現什么不妥,為什么要使用carthage呢? 所以為了解開大家的疑問,我會首先介紹這兩個第三方庫管理工具的不同,讓大家對這顆剛剛崛起的新星有一個初步的了解。
說到Carthage,就要先說swift,2014年蘋果發布swift初期,用swift編寫的第三方庫就只能通過拖動源代碼到自己的項目中才能被調用, 由于當時只有寥寥無幾的開源庫,且不能打包,加上swift1.0并不是那么好用,許多人對swift持著觀望的態度。隨著swift逐步趨于穩定,并且從ios8.0開始支持將自己寫的swift打包成framework,越來越多的純swift編寫框架開始出現,就在這時候carthage突然出現在人們的視野中,而且陸陸續續幾乎所有的開源框架都開始支持carthage。
Carthage的github主頁為 ?https://github.com/Carthage/Carthage.git ? 里面其實對大家的疑問都有著詳盡的解答,介于一些朋友英文不太好,這里我就用中文介紹一下Carthage和CocoaPods的不同:
首先,CocoaPods會直接創建和修改項目的workspace配置,一切都是為了便捷,我們只需要修改pod文件并不需要過多的關心其他事情,CocoaPods創建的是高度集成的項目。 而Carthage的特點是靈活,耦合度不高,集成時不需要集成相應的project,不需要創建workspace,而僅僅需要依賴打包好的framework文件即可。
其次,CocoaPods相對來說功能要比Carthage多很多,在國內由于墻的原因,我們都改成了淘寶的源來更新CocoaPods,相信我,如果你不翻墻,很多東西還是不能用,更新不下來,版本錯誤等一系列原因會讓你不得不放棄一些看起來非常好用的第三方庫。而Carthage似乎只需要從github上下載項目即可,配置更是簡單,使用的時候項目干干凈凈,所有的第三方庫就像蘋果原生的framework一樣美好,從此你不再需要擔新CocoaPods的庫用不了,不用花大量時間去修復用CocoaPods打包時出現的各種問題,如果你用過CocoaPods,當你開始用Carthage的時候,你會愛上這個工具的。
安裝使用Carthage
好了,說了這么多,下面我就開始介紹如何使用Carthage.
安裝Carthage只需要打開終端,輸入如下指令:
$?brew?update
$?brew?install?carthage
如果你不喜歡使用終端,也可以從網站https://github.com/Carthage/Carthage/releases下載最新版的Carthage.pkg來更新。
當你安裝好Carthage后,在終端執行
$ carthage version
即可看到當前的carthage版本, 當我寫這篇文章的時候,Carthage的版本為0.11.0 。
現在,你已經安裝好了Carthage,接下來就是在你的項目中使用carthage了:
1、通過終端進入到項目所在的文件夾:
$ cd ~/Path/Project
后面的路徑替換成你的項目所在的路徑即可
2、創建一個空的carthage文件:
$ touch Cartfile
此時你的項目文件夾里會創建一個名為Cartfile的文件。
3、使用xcode打開cartfile文件
$ open -a Xcode Cartfile
并在打開的文件中加入以下內容
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、保存并關閉cart file文件,在終端執行命令
$ carthage update --platform iOS
carthage會為你下載和編譯所需要的第三方庫,當命令執行完畢,在你的項目文件夾中會創建一個名為Carthage的文件夾
在 ~/Carthage/Build/iOS里會出現xxx.framework文件已經為你創建好了。
當然,你也可以通過命令行進入此文件夾:
$ open Carthage
5、現在打開你的項目,點擊project,選擇target, 再選擇上方的General,將需要的framework文件拖到 Linked frameworks and Binaries內
6、點擊Build Phrase tab選項,添加相應的run script
如果你使用的是0.11之后的版本,可能會報錯:
/bin/sh failed with exit code 1
你需要使用下面的方式來配置即可:
此時,你已經可以使用導入的第三方庫了
如需要使用Alamofire和SwiftyJSON,就在相應的類前添加
import Alamofire
import SwiftyJSON
即可。