CocoaPods 做爲 iOS 開發的包管理工具,幾乎成爲了 Objective-C 的行業標準。它爲咱們提供了很是方便的包管理功能。而蘋果正式發佈 Swift 語言也已經有半年多時間了,Swift 做爲 iOS 開發語言發佈後,迅速的被開發者們所接受。而隨之而來的,就是愈來愈多用 Swift 寫出得第三方庫的管理問題。而 CocoaPods 的最新預覽版已經支持了 Swift 語言。這對已經開始使用 Swift 來進行開發的朋友無疑是一個很大的福音。html
這一小節是對 CocoaPods 一個入門介紹,若是您已經瞭解或使用過了 CocoaPods
就能夠直接掉過本小節,繼續下面的內容。幾乎每一個相對資深的 Objective-C 開發者都會對 CocoaPods
比較熟悉。CocoaPods
是一個 iOS 和 Mac OS 平臺下開發庫的包管理平臺。更通俗的來講,就是一個讓咱們沒必要導出去找第三方庫,而是幫咱們來管理這些庫的更新版本的一套工具。ios
讓咱們來用一個簡單的例子來講明 CocoaPods
吧:git
假如咱們如今用 Objective-C 開發一個項目,咱們用到了不少第三方庫,咱們會用到 AFNetworking 來處理網絡操做,還會用到EGOTableViewPullRefresh 來構建下拉刷新的 TableView
界面, 還要用到 SVProgressHUD 做爲咱們的加載進度提示。使用 FMDB 進行Sqlite
數據庫的操做。github
那麼咱們會怎麼辦呢?咱們先去這裏 https://github.com/AFNetworking/AFNetworking 下載 AFNetworking
的代碼包,而後解壓縮,拷貝到咱們項目的根目錄,而後再將它引用到咱們的項目中。接下來對 EGOTableViewPullRefresh
,SVProgressHUD
,FMDB
也要進行一樣的操做,下載,解壓縮,拷貝,引用,這些操做。若是這些庫中還引用了其餘的系統庫,咱們還要在項目設置中將這些庫的引用配置好,否則就會引發編譯錯誤。好比 FMDB
引用了 sqlite3.lib
庫,因此咱們還要將這個系統庫包含進項目。sql
感受有些麻煩哦。。數據庫
通常的項目中或多或少都會用到這麼5,6個第三方庫,再加上咱們還要進行一些數據統計,也要添加它們的第三方庫。若是這些第三方庫中的某些庫有了更新版本,並且咱們還須要這個更新的話,那麼首先要打開那個庫的下載頁面,而後下載,複製,刪除 這些操做。swift
是否是有一種凌亂感呢。。 就像他這樣。。。ruby
咱們的思惟被這些諸如複製,粘貼,文件操做的雜務打亂了。並且這些庫仍然沒有秩序,好比某一天咱們想知道項目中都引用了哪些第三方庫,咱們就中代碼裏面找。bash
而 CocoaPods
的出現正是爲了解決這個問題。讓咱們來看看使用 CocoaPods
是如何處理上述問題的。網絡
若是咱們要使用 CocoaPods
引用這些庫,首先咱們須要在項目的根目錄中創建一個 Podfile
文件:
platform :ios, '8.0' source 'https://github.com/CocoaPods/Specs.git' pod 'AFNetworking' pod 'EGOTableViewPullRefresh' pod 'SVProgressHUD' pod 'FMDB'
而後一樣在根目錄中運行 pod install
命令。 CocoaPods
就會爲咱們下載並自動完成各類引用依賴關係的創建。命令運行完成以後,咱們的全部第三方庫的引用就完成了。是否是方便多了,只須要運行一條命令便可完成全部這些繁瑣的操做。
若是咱們須要更新這些庫,一樣的也只要運行一下這個命令便可 pod update
是否是以爲豁然開朗了?
有了 CocoaPods
咱們管理各類第三方庫方便了不少,只須要在 Podfile 裏面寫下須要用到的庫,而後運行一下命令便可完成。若是咱們要肯定咱們須要的庫在 CocoaPods
中是否可用,咱們能夠到它的官網上搜索便可, http://cocoapods.org
CocoaPods 的最新預覽版已經提供了對 Swift 項目的支持。下面咱們來介紹下它的安裝和使用步驟。
由於 CocoaPods 是在 ruby
環境上運行的,咱們首先要安裝它的運行環境。
安裝 ruby
的話,推薦你們使用 rvm
來安裝,進入它的官網 http://rvm.io 咱們會看到 rvm 的主頁介紹。咱們經過一條命令來安裝 rvm
\curl -sSL https://get.rvm.io | bash -s stable
安裝好 rvm
後,咱們接下來用它來安裝 ruby
環境:
rvm install 2.1.1
這條命令表明,咱們要安裝 ruby 的 2.1.1 版本,接下來 rvm 會自動爲咱們完成剩餘的操做。
咱們的 ruby 安裝好後,咱們可使用 ruby --version
來肯定安裝是否成功,若是安裝成功,咱們會收到這樣的提示:
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin12.0]
ruby 安裝成功後,咱們就能夠安裝 CocoaPods
了,繼續輸入這個命令:
sudo gem install cocoapods --pre
執行完這個命令後,咱們就可使用 CocoaPods
了。咱們注意到 --pre
命令行參數,這個參數是用來安裝預覽版的,也就是說只有經過這個參數來安裝 CocoaPods
咱們才能夠在 Swift 項目中使用它。
如今咱們就可使用它啦,咱們在 Xcode 中建立一個 Swift 項目。而後咱們在這個項目的根目錄中建立 Podfile 文件。
咱們項目的根目錄內容以下:
咱們用命令行進入這個目錄,並輸入 touch Podfile
命令來建立這個文件。
$ touch Podfile
建立好後咱們的目錄就是這樣:
接下來咱們能夠在 CocoaPods
的主頁 上搜索咱們想用到的庫,以肯定這些庫的精確名稱。好比咱們搜索 Alamofire 庫
咱們看到,在搜索結果中,顯示出了這個庫的精確名稱和當前版本號。接下來咱們就能夠編輯咱們剛剛建立的 Podfile
文件了。
platform :ios, '8.0' source 'https://github.com/CocoaPods/Specs.git' pod 'Alamofire'
編輯好後,咱們在項目的根目錄中運行 pod install
命令,接下來會看到這樣的輸出:
Analyzing dependencies Downloading dependencies Installing Alamofire (1.1.4) Generating Pods project Integrating client project [!] From now on use `cocoapodsSample.xcworkspace`.
咱們看到 pod
命令,爲咱們作了這些事情,Analyzing dependencies
是分析咱們項目中的庫和 Podfile
中列出的庫,哪些須要下載,哪些須要更新,等等。
分析好後,會進行 Downloading dependencies
操做來下載那些須要安裝進來的庫。固然這過程是徹底自動化的。
而後就會安裝下載好的庫 Installing Alamofire (1.1.4)
。
接下來 CocosPods
會將這些第三方庫生成一個單獨的 Xcode 項目。
最後它會建立一個 xcworkspace 文件,將咱們的項目和第三方庫的項目關聯起來。
注意最後一行輸出:
[!] From now on use `cocoapodsSample.xcworkspace`.
也就是說,在使用了 CocoaPods
後,咱們要使用 workspace 來打開項目。那麼咱們就按着 CocoaPods
的提示來打開 workspace
:
$ open cocoapodsSample.xcworkspace
咱們看到 workspace 中的兩個項目,一個是咱們的 app 項目,另一個是 cocoaPods 建立的第三方庫集成項目:
咱們試一下在項目中使用咱們剛剛集成進來的 Alamofire
庫:
編譯,並運行。 成功了, 而且咱們的 app 正確的在控制檯輸出了內容。
咱們集成這個庫的時候,是否是沒有進行任何諸如,下載,拷貝這些操做。只運行了一條命令,隨後咱們就能夠在項目中正常的使用 Alamofire 庫了。