使用cocoaPods來管理第三方套件

Nathan Chou
7 min readJul 18, 2017

--

當我們開發專案的時候,常常會使用到第三方套件來輔助開發,例如swiftyJSON、Alamofire、SDWebImage等等,但每當套件更新時我們就得必須重新引用,這種方式對我們開發者來說相當的消耗時間,甚至還會發生誤刪其他套件的情況,這時若能使用CocoaPods來替我們管理第三方套件,就能方便許多,也能避免發生悲劇…XD

今天就來介紹如何安裝CocoaPods以及如何透過CocoaPods引用GitHub的套件吧。

安裝Cocoapods

由於Cocoapods是套過Ruby撰寫制成的gem套件,因此使用gem安裝。

▼打開終端機執行 sudo gem install cocoa pods

▼再來會要求你輸入登入電腦的密碼,因為我已經安裝過了,這邊就用其他範例圖來給各位參考囉。

▼以上已經完成CocoaPods的安裝了,執行pod — version指令可以查詢當前的版本喔。

▼接下來示範如何透過CocoaPods引用GitHub上的套件。

▼接著我們要產生一個檔名為 Podfile 檔,並加入以下內容(Podfile 是 CocoaPods 參照的設定檔)必須目錄切換至該專案的目錄下,鍵入「pod init」亦會產生profile檔。

首先鍵入指令 => cd + 專案路徑(鍵入ls 確認是否在專案目錄底下)

(可直接將專案拖曳至終端機內,會自動產生路徑,但拖曳完記得要關閉專案才可執行pod install)

▼再來鍵入指令 => pod init 建立Podfile檔案

一樣可鍵入ls查看目錄底下是否建立成功。

▼引用 第三方套件,以swiftyJSON套件為例子,會提供這樣的一段指令讓開發者來引用它。( pod ‘xxxxxxx’ )

那麼該在什麼地方來引用它呢?還記得剛剛建立在目錄底下的Podfile嗎

我們來打開它吧! (這邊有兩種方式來引入,依開發者習慣,筆者則是習慣使用vim)。

▼對了這邊提一下,CocoaPods還有個好處是可以搜尋第三方套件,可以得知其版本訊息喔

只要鍵入pod search 套件名稱即可。

指定套件版本

如果想指定套件上的某個版本,可以透過Podfile指定套件版本。
指定規則及方法如下:

# 安裝高於0.1的版本
pod 'xxxx', '> 0.1'
# 安裝0.1與高於0.1的版本
pod 'xxxx', '>= 0.1'
# 安裝小於0.1的版本
pod 'xxxx', '< 0.1'
# 安裝0.1與小於0.1的版本
pod 'xxxx', '<= 0.1'
# 安裝0以上的版本
pod 'xxxx', '~> 0'
# 安裝0.5以上且1.0之前的版本(不包含1.0)
pod 'xxxx', '~> 0.5'
# 安裝0.1.3以上且0.2之前的版本(不包含0.2)
pod 'xxxx', '~> 0.1.3'

因此Podfile也可以寫成這樣

# Uncomment this line to define a global platform for your project
# platform :ios, ‘9.0’
target ‘CocoaPodsDemo’ do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!# Pods for CocoaPodsDemopod 'SwiftyJSON', '~> 3.1.4'end

▼這邊舉例以簡易為主,有興趣的人可以自行嘗試看看喔!

離題了,我們接著進入vim模式來編輯Podfile吧

▼在編輯模式下鍵入i 才可以輸入東西喔!我們鍵入pod ‘SwiftyJSON’

說明:

  • platform:設定你的專案要執行的平台及版本
  • target:名稱對應到 Xcode 中的 target 的名稱
  • use_frameworks!:要使用 Swift 的話,要加上這行,否則註解掉即可
  • pod:後面接套件名稱及版本號,可以為測試 target 加入額外的套件

▼再來編輯完畢,有個小坑,vim模式下編輯完成以後記得要先按esc離開編輯模式,然後鍵入:wq 來儲存並離開。

▼這時open Podfile 可以看到剛剛引入的套件名稱。

別著急還沒開始安裝,還需要鍵入pod install才會開始執行安裝喔!

看到這個畫面就是安裝完成了喔!

▼到此已經算完成安裝第三方的套件了,此時專案的檔案架構已經變了,要打開該專案的路徑也不一樣了,請選擇副檔名為 .xcworkspace 的檔案打開它。

▼最後來測試剛剛安裝的套件是否成功,在任何一個類別鍵入 import SwiftyJSON,接著重新編譯(command + B)若編譯無誤表示你成功啦!

備註:

更新套件

1. 若有釋出新的版本即只要在 Podfile 修改版本號後,打開終端機執行 pod install 即可,或是執行 pod update 亦可。

這兩種指令的差異在於

pod install => 更新至你 Podfile 指定的版本。

pod update => 更新至最新版本。

移除套件

如果日後想要移除套件,只要在 Podfile 中將該套件註解掉或刪掉,然後重新執行 pod install 即可。

▼那關於CocoaPods就暫時介紹到這邊了,如果有興趣的話,這邊附上CocoaPods的官網連結,還有很多指令等著大家學習喔。

https://cocoapods.org

--

--