Carthage安裝與使用(2018.12.4更新)

一、Carthage的安裝

先簡單介紹兩種安裝方法,都是官方給的,一個是下載 pkg 文件安裝,特簡單。另一個是使用 brew 安裝,需要使用命令行先安裝 brew。如果只是為了使用Carthage,那就使用第一種即可。

第一種:使用 pkg 文件安裝

1.1 下載地址:https://github.com/Carthage/Carthage/releases

下載完成后,雙擊安裝即可,簡單方便。

1.2 檢查版本,如果有版本號, 證明安裝成功

carthage version

我更新這篇文章時版本為0.31.2,如果你的版本大于等于此版本,那么,Carthage已經安裝完成,可以跳過第二種安裝,直接看下面的使用即可。

第二種 使用homebrew安裝

2.0 安裝Xcode Command Line Tools

xcode-select --install

如果已經安裝了,會報錯,顯示already installed。

2.1 先安裝homebrew,兩步

2.1.1 使用下面命令行安裝homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.1.2 更新brew,保證版本最新
brew update

顯示Already up-to-date.就是最新版的 brew 了。

2.2 再安裝Carthage,兩步

2.2.1 使用homebrew安裝Carthage
brew install carthage
2.2.2 檢查版本,如果有版本號, 證明安裝成功
carthage version

我更新這篇文章時版本為0.31.2,如果你的版本大于等于此版本,那么,Carthage已經安裝完成,直接看下面的使用即可。

二、Carthage的使用

3.配置Carthage在項目中使用

3.1創建Carthage文件

3.1.1 方法一:命令行創建
  1. 在命令行中使用cd命令到你的項目所在文件夾路徑
cd /Users/allen_qin/test/我的測試app

小技巧:打開teminal終端,敲入cd命令后,敲一下空格鍵,然后將項目文件所在的文件夾直接拽進終端,就顯示路徑了,此時回車即可。

  1. 用touch命令創建Cartfile文件,保證跟你的項目在統一文件夾下
touch Cartfile
  1. 因為這個文件需要提交git或者svn版本管理,而且為了便于編輯,可以拽進Xcode項目中,填寫需要的git庫,用版本管理工具管理
3.1.2 方法二:用Xcode創建Cartfile文件
  1. 直接用Xcode創建一個空白文件,起名為Cartfile,存儲位置為與項目.xcodeproj同一個文件夾
  2. 直接在Xcode中編寫庫文件即可

簡單說明~>的意思:更詳細的可以參考這篇文章

  • >= 1.0 代表 “最低 1.0版本”
  • ~> 1.0 代表 “表示使用版本1.0以上但是低于2.0的最新版本,如1.5, 1.9”
  • == 1.0 代表 “必須是 1.0 版本”
  • 直接使用branch等分支名稱:例如
 github "Alamofire/Alamofire"                ~> 4.0
  • 一般你去git上找到git庫的說明文檔時,都會給出建議版本,復制粘貼即可

3.2 在項目中使用Carthage

3.2.1 下載git庫并編譯成framework
  1. 在命令行中使用cd命令到你的項目所在文件夾:(我的測試app.xcodeproj文件所在的文件夾),同步驟3.1.1。確保你用ls命令可以看到Carthage文件,如圖:


    image
  2. 在終端內輸入更新命令下載git庫文件即可,可以加上平臺限制如--platform iOS
carthage update --platform iOS
  1. 等著Carthage下載并編譯你的git庫,根據你庫的多少和庫本身的體積大小,時間會不同,編譯完成后終端會提示,如圖:
    image

提示:
如果升級了Xcode版本,例如從Xcode8升級到Xcode9,或者從beta1升級到beta2,需要重新執行一次上面的更新命令,否則會報下面的錯誤,如圖:


image
  1. 編譯完成后會在項目文件夾下自動生成Carthage文件夾和一個Cartfile.resolved文件,第三方庫的源碼文件和framework文件就在Carthage的Checkout文件夾下,如圖:


    image
  2. 注意:Cartfile和Cartfile.resolved兩個文件需要提交到git或svn,如圖


    image

3.2.2 配置Xcode

最后一步了,這一步是配置一下Xcode項目文件,因為Carthage是號稱無侵入性的管理框架,所以不會修改你到Xcode項目的任何內容,所以這里需要自己手動設置一下Xcode項目,以便于使用Carthage

  1. 添加framework,很簡單,如圖點+號按鈕


    image

    選擇Add Other


    image

    找到編譯好的framework文件,點擊Open
    image

    項目中就添加好了


    image
  2. 配置腳本,很簡單,復制好下面的命令,看圖一步步來就行:
/usr/local/bin/carthage copy-frameworks
  1. 添加運行腳本,點擊+號后選擇New Run Script Phase


    image
  2. 將剛才復制的命令粘貼到黑框中,覆蓋掉原來的內容,并且在Input Files和Output Files中按照格式填寫\

inputfiles

$(SRCROOT)/Carthage/Build/iOS/Result.framework

outputfiles

$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Result.framework
image

簡單解釋填寫的內容:
(SRCROOT):你的工程的相對路徑\(BUILT_PRODUCTS_DIR):built后的輸出路徑
$(FRAMEWORKS_FOLDER_PATH):framework所在的路徑

  1. 到此為止,已經完成了,在項目中使用到第三方的地方直接“import Alamofire”就行,跟引入系統框架一樣。
  2. 以后再添加第三方庫,只需重復3.2步驟即可。

其他提示(可能遇到的坑)

  1. 等待時間很長,如果你一次行添加了好多第三方框架,那就等吧,你的網速好海行,網速差就等好幾個小時
  2. 路徑錯誤,你很有可能路徑設置有問題,我已經盡可能的用截圖的方式給你展示了合適的路徑,如果沒有嚴格按照我的截圖路徑來,那么你最后填寫的inputfile和output路徑就需要按照你自己的來
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,489評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,290評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,776評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,510評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,866評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,036評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,585評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,331評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,536評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,754評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,154評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,469評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,273評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,505評論 2 379

推薦閱讀更多精彩內容

  • Carthage v0.26.2(原文鏈接) Carthage的目標是用最簡單的方式來管理Cocoa第三方框架。 ...
    iOSLee閱讀 3,630評論 0 7
  • 文檔地址https://github.com/Carthage/Carthage release v0.20.0...
    指尖彈灰閱讀 4,527評論 2 4
  • Carthage和CocoaPods相比,輕量級一些,在swift中使用很方便,它本身就是swift寫的。 1.b...
    牧曉逸風閱讀 49,526評論 25 98
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協議。它實...
    香橙柚子閱讀 24,019評論 8 183
  • 女兒問: 媽媽你為什么嫁給爸爸? 我說: 是因為爸爸拿走了我的心 后來, 爸爸把心還你了嗎? 后來, 爸爸把我的心...
    云是雨的衣閱讀 87評論 0 1