iOS依賴庫管理工具之Carthage

來源:互聯網
上載者:User

標籤:

  在iOS開發中,我們常會用CocoaPods來進行依賴庫的管理。CoaoaPods 是一套整體解決方案,我們在 Podfile 中指定好我們需要的第三方庫,然後 CocoaPods 就會進行下載,整合,然後修改或者建立我們項目的 workspace 檔案。

  相比之下,Carthage 就要輕量很多,它也需要一個叫做 Cartfile 的描述檔案,但 Carthage 不會對我們的項目結構進行任何修改,更不多建立 workspace。它只是根據我們描述檔案中配置的第三方庫,將它們下載到本地,然後使用 xcodebuild 構建成 framework 檔案。然後由我們自己將這些庫整合到項目中。Carthage使用的是一種非侵入性的哲學。作為開發人員,必須在 Carthage 將第三方庫構建完成後,手動的關聯到項目中。

  另外 Carthage 除了非侵入性,它還是去中心化的,它的包管理不像 CocoaPods 那樣,有一個中心伺服器(cocoapods.org),來管理各個包的元資訊,而是依賴於每個第三方庫自己的源地址,比如 Github。這樣也是有利有弊,好處就是我們對包管理不再依賴中心伺服器,不會受中心伺服器資訊量和穩定性的限制(尤其是在我們這裡的網路訪問狀況問題),弊端嘛,就是我們想尋找第三方庫的時候,也沒有一個中心伺服器來協助我們進行索引,而是必須從網路上自行尋找。

1.安裝Carthage
  • 方法一:開啟終端,輸入如下指令。
$ brew update$ brew install carthage
  • 方法二:在Github 首頁上,找到:https://github.com/Carthage/Carthage/releases,找到Carthage.pkg,下載安裝即可。

  安裝完成後,在終端執行如下指令,可以查看當前carthage的版本:

$ carthage version
2.使用Carthage
  • 第一步:通過終端進入你的專案檔夾,樣本如下:
$ cd /Users/GofLee/Desktop/Source/SwiftDemo/SwiftDemo/ThirdLibrary
  • 第二步:建立一個空的carthage檔案,指令如下:
$ touch Cartfile

  此時專案檔夾裡會建立一個名為Cartfile的檔案。

  • 第三步:使用xcode開啟Cartfile檔案:
$ open -a Xcode Cartfile

  在開啟的檔案中輸入你所要匯入的第三方庫,樣本所示:

github "Alamofire/Alamofire"github "SwiftyJSON/SwiftyJSON"

  當然也可以指定版本號碼,沒有指明版本號碼的時候,則會自動使用最新的版本。指定版本號碼樣本:

github "Alamofire/Alamofire" ~> 3.4.0
  • 第四步:儲存並關閉Cartfile檔案,在終端執行如下命令:
$ carthage update --platform iOS

  carthage會為你下載和編譯所需要的第三方庫,當命令執行完畢,在你的專案檔夾中會建立一個名為Carthage的檔案夾。在 ~/Carthage/Build/iOS裡會出現framework和dSYM檔案,如下所示:

 

  【說明】:

  1. 由於此處只需要匯入iOS平台下的庫,所以指定了平台,如果需要全部庫,那麼去掉後面的"--platform iOS"即可。
  2. Build 中存放的是構建好的 framework 包;
  3. Checkouts 中存放的是第三方庫項目源檔案。
  •  第五步:回到項目設定,進入 General 選項卡,在最下方的 Linked Frameworks and Libraries 中,將Carthage/Build/iOS 中的 framework 檔案添加到項目中,如所示:

 

  • 第六步:在 Build Phrases 中,點擊左上方的 + 號,添加一個 New Run Script Phrase,在指令碼地區輸入: 
/usr/local/bin/carthage copy-frameworks

  最後將 Alamofire 和 SwiftyJSON 的路徑添加到 Input Files 中,如所示:

  添加這個 Run Script 的作用是為了讓運行時能夠找到這個動態庫。這點 Carthage 官方文檔中沒有太明確的說明。我實際的實驗過,如果不添加這個 copy-frameworks 指令碼,那麼項目在啟動並執行時候會因為找不到這個動態庫而在啟動的時候崩潰。

 3.使用匯入庫

  產生和配置好第三方庫之後,我們可以很簡單的來使用,直接在要使用的檔案中匯入,樣本如下:

import Alamofireimport SwiftyJSON

 

iOS依賴庫管理工具之Carthage

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.