Swift Tips - 當 Swift 遇上 CocoaPods


CocoaPods 作為 iOS 開發的包管理工具,幾乎成為了 Objective-C 的行業標准。它為我們提供了非常方便的包管理功能。而蘋果正式發布 Swift 語言也已經有半年多時間了,Swift 作為 iOS 開發語言發布后,迅速的被開發者們所接受。而隨之而來的,就是越來越多用 Swift 寫出得第三方庫的管理問題。而 CocoaPods 的最新預覽版已經支持了 Swift 語言。這對已經開始使用 Swift 來進行開發的朋友無疑是一個很大的福音。

CocoaPods 簡介

這一小節是對 CocoaPods 一個入門介紹,如果您已經了解或使用過了 CocoaPods 就可以直接掉過本小節,繼續下面的內容。幾乎每個相對資深的 Objective-C 開發者都會對 CocoaPods 比較熟悉。CocoaPods 是一個 iOS 和 Mac OS 平台下開發庫的包管理平台。更通俗的來說,就是一個讓我們不必導出去找第三方庫,而是幫我們來管理這些庫的更新版本的一套工具。

讓我們來用一個簡單的例子來說明 CocoaPods 吧:

假如我們現在用 Objective-C 開發一個項目,我們用到了很多第三方庫,我們會用到 AFNetworking 來處理網絡操作,還會用到 EGOTableViewPullRefresh 來構建下拉刷新的 TableView 界面, 還要用到 SVProgressHUD 作為我們的加載進度提示。使用 FMDB 進行 Sqlite 數據庫的操作。

那么我們會怎么辦呢?我們先去這里 https://github.com/AFNetworking/AFNetworking 下載 AFNetworking 的代碼包,然后解壓縮拷貝 到我們項目的根目錄,然后再將它引用到我們的項目中。接下來對 EGOTableViewPullRefreshSVProgressHUD,FMDB 也要進行同樣的操作,下載,解壓縮,拷貝,引用,這些操作。如果這些庫中還引用了其他的系統庫,我們還要在項目設置中將這些庫的引用配置好,不然就會引起編譯錯誤。比如 FMDB 引用了 sqlite3.lib 庫,所以我們還要將這個系統庫包含進項目。

感覺有些麻煩哦。。

一般的項目中或多或少都會用到這么5,6個第三方庫,再加上我們還要進行一些數據統計,也要添加它們的第三方庫。如果這些第三方庫中的某些庫有了更新版本,而且我們還需要這個更新的話,那么首先要打開那個庫的下載頁面,然后下載,復制,刪除 這些操作。

是不是有一種凌亂感呢。。 就像他這樣。。。

我們的思維被這些諸如復制,粘貼,文件操作的雜務打亂了。而且這些庫仍然沒有秩序,比如某一天我們想知道項目中都引用了哪些第三方庫,我們就中代碼里面找。

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 的最新預覽版已經提供了對 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 庫了。

 

更多文章請訪問: www.theswiftworld.com
更多好文,掃碼關注微信公眾號:

更多文章請訪問: www.theswiftworld.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM