Carthage 的使用前服用

Zhi-Hong Lin
4 min readJul 6, 2018

--

Carthage 相對於 CocoaPods,有以下優勢:

  • 不需要每次都重新編譯第三方 framework,節省時間
  • 去中心化,每次配置更新環境,只需要去更新具體的 framework,節省時間
  • 非侵入性,不會修改專案配置和結構
  • 可以與 CocoaPods 混用

第一步安裝 brew

安裝 carthage 前需要先安裝 brew,官網有詳細的安裝步驟。

或者你可以打開 terminal 輸入以下指令

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

安裝 carthage

// 建議先把 brew 的版本更新到最新版
brew update
// 安裝 carthage
brew install carthage

進入專案所在的根目錄,然後建立一個空的 Cartfile 文件

touch Cartfile

打開 Cartfile 文件後,加入你要安裝的 framework

github "SnapKit/SnapKit" ~> 4.0.0

保存並關閉 Cartfile 文件,以下命令擇一,回到 terminal 執行

/只為 iOS 編譯 framework
carthage update --platform iOS
//不指定平台,編譯全平台的 framework
carthage update

添加 Frameworks 到專案中

找到 Xcode -> Targets -> Build Phases -> Link Binary With Libraries,打開 Carthage 文件夾,進入 Build/iOS ,拖曳 SnapKit.framework 到 Xcode 的 Link Binary With Libraries 中

在 Build Phases 添加一個新的 Run Script,並添加以下命令

/usr/local/bin/carthage copy-frameworks

點擊 Input Files 下面的 + 號,添加 framework 的路徑

點擊 Output Files 下面的 + 號,$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/SnapKit.framework 加上這個後,只在 framework 改變的情況下,才會跑一遍 Copy,可以加快專案的編譯速度

command + B 在編譯這個專案,就大功告成啦~~~~

Cartfile 格式说明

Dependency origin

Carthage 支持兩種類型的 origin,一個是github,另一個是git

  1. github表示依賴庫來自於 github,格式為Username/ProjectName
  2. git關鍵字後面跟的是資料庫的地址,可以是遠端的 URL 地址,使用git://, http://, ssh://,或者是本地資料庫地址。

Dependency Version

告诉 Carthage 使用哪個版本,這是可選的,不寫默認使用最新版本

== 1.0 表示使用 1.0 版本
>= 1.0 表示使用 1.0 或更高的版本
~> 1.0 表示使用版本 1.0 以上但是低於 2.0 的最新版本

命令執行完後,會生成一個 Carthage 文件夾和 Cartfile.resolved 文件。

打開 Carthage 文件夾後會看到兩個文件夾 Build 和 Checkouts。

  • Cartfile.resolved:需要被提交到 repo,它有助於其他開發者使用和你相同版本的套件。
  • Build : 裡面放的是安裝的套件
  • Checkouts: 裡面則是直接將遠端 repo 直接 clone 到本地,所以不需要在不同的專案中對同一個套件 clone 多次

更新指定的 framework

carthage update Alamofire --platform iOS

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response