1. 程式人生 > >ios依賴管理工具Carthage 簡介

ios依賴管理工具Carthage 簡介

Carthage 簡介

  • Carthage 類似於 CocoaPods,為使用者管理第三方框架和依賴,但不會自動修改專案檔案和生成配置
  • Carthage 是去中心化的依賴管理工具,安裝依賴時不需要去中心倉庫獲取 CocoaPods 所有依賴的索引,節省時間
  • 對專案無侵入性,Carthage 設計上也比較簡單,利用的都是 Xcode 自身的功能,開發者在建立依賴時,相比 CocoaPods 也簡單許多
  • Carthage 管理的依賴只需編譯一次,專案乾淨編譯時,不會再去重新編譯依賴,節省時間
  • 自動將第三方框架程式設計為 Dynamic framework( 動態庫 )
  • 與 CocoaPods 無縫整合,一個專案能同時擁有 CocoaPods 和 Carthage
  • 缺點: 
    • 僅支援 iOS8 +
    • 它只支援框架,所以不能用來針對 iOS 8 以前的系統版本進行開發
    • 支援的 Carthage 安裝的第三方框架和依賴不如 CocoaPods 豐富
    • 無法在 Xcode 裡定位到原始碼
    • 安裝包的大小比用CocoaPods安裝的包大

安裝 Homebrew

可以使用 Homebrew 來安裝 Carthage

1、安裝 Homebrew

將以上命令貼上至終端 
指令碼會在執行前暫停,並說明將它將做什麼。高階安裝選項在 這裡(需要OSX 10.5+)

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)
"
  • 1

安裝完 homebrew 後執行下面命令,獲取最新版本【可選】

$ brew update
  • 1

注意:如果遇到 Error: The /usr/local directory is not writable.錯誤,就執行以下命令 sudo chown -R $(whoami):admin /usr/local,再更新。

其他 brew 命令

brew install git    // 使用brew安裝軟體
brew uninstall wget // 使用brew解除安裝軟體
brew search /wge*/  // 使用brew查詢軟體,其中/wge*/是個正則表示式,需要包含在/中
brew list           // 列出已安裝的軟體
brew home // 用瀏覽器開啟brew的官方網站 brew info // 顯示軟體資訊 brew deps // 顯示包依賴
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2、安裝 Carthage

$ brew install carthage
  • 1

安裝 Carthage 之後,可檢視版本

carthage version // 目前的版本號為:0.20.1
  • 1

3、使用 Carthage 安裝依賴

進入專案所在資料夾

cd ~/路徑/專案資料夾
  • 1

建立一個空的 Carthage 檔案 Cartfile

touch Cartfile
  • 1

使用 Xcode 開啟 Cartfile 檔案

open -a Xcode Cartfile
  • 1

編輯 Cartfile【可手動開啟進行編輯】

github "Alamofire/Alamofire" == 4.4.0
  • 1
  • 2

執行更新命令

$ carthage update --platform iOS
  • 1

更新成功後,專案資料夾中會多出三個檔案

  • cartfile
  • Cartfile.resolved
  • Carthage/ 
    • Build/
    • Checkouts/

Carthage 會 clone 檔案中對應的 git 第三方庫,把每一個第三方庫編譯成二進位制檔案的 framework 檔案。 
其中 “–platform iOS” 命令是可選的,作用是保證只為 iOS 編譯framework,如果不指定平臺,會為全平臺編譯 framework 檔案。如果想要了解更多的命令,可以執行 carthage help update檢視。

4、新增 Frameworks 到專案中

  • 01 - 點選”專案名稱”–> “TARGETS” –> “General”,在最底部找到 “Linked Frameworks and Libraries”
  • 02 - 點選 + 號,選擇左下角 Add Other… 按鈕,選擇專案下 Carthage/Build/iOS/Alamofire.framework 檔案,點選 Open 加入到專案中

目的是告訴Xcode連結你的app到這個 framework,允許你在程式碼中使用

  • 03 - 下一步選擇選單上的 Build Phases,點選左上角 + 號新增一個新的 Run Script,並新增以下命令:
/usr/local/bin/carthage copy-frameworks
  • 1
  • 04 - 點選 Input Files 下面的 + 號為每一個 framework 新增訪問路徑

carthage copy-frameworks 命令剔除了額外的框架

$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework
  • 1
  • 05 - Import 框架名到控制器,Command + B 編譯專案,如果成功,就可以使用了
import Alamofire