有別於一貫 AppCoda 的教學,這篇教學相對簡短,目的只為你打開接觸 CocoaPods 之門。
什麼是 CocoaPods?
透過 CocoaPods,開發者可以輕鬆地管理 Swift 或 Objective-C 的程式專案。若果你有曾經使用 Node.js、Ruby on Rails 或 Python,應該對這種相依性管理工具不會陌生。就算從來未有接觸也不要緊,我們先來簡單了解一下。首先,若果沒有相依性管理工具協助下,使用類庫便需要逐一下載並加入Xcode項目中,但當專案規模增大,要處理的類庫數目增加,逐一手動新增或更新絕對是費時失事之舉。開發者透過相依性管理工具(如 CocoaPods)幫助輕鬆管理Xcode項目,只需要透過簡單的指令就能管理類庫項目,節省大量配置和部署的時間。
舉例:你正在編寫一支程式,並需要使用如Firebase這種第三方類庫。
Firebase 本身是一個第三方類庫,但一般而言它需要與別的第三方類庫互相調用。所以,你便需要滙入包括Firebase本身及所需相關的類庫。開發者若然需要自行手動逐一處理,這無疑是一個冗長繁複的過程。
繼而日後 Firebase 的 SDK 有所更新,開發人員需要重新下載並手動替換 SDK。
為了方便管理類庫,因而𧗠生不少相依性管理工具。一旦安裝了,它會自動尋找並安裝類庫或相連類庫。接下來我們會詳細再解釋它的功能。
在Mac電腦安裝CocoaPods
安裝 CocoaPods 的步驟簡單直接,前往終端機 (terminal) 並依下列程式碼輸入:
sudo gem install cocoapods
單是這一行程式碼便能把 CocoaPods 包 (gem) 安裝到你的電腦。CocoaPods 是基於 Ruby 語言開發而成,而 Mac 電腦都有自帶 Ruby 系統。若果你本身熟悉 Ruby 語言,那麼 CocoaPods 的 pods 就近乎於 Ruby 的 gems。
你會被提示輸入根密碼並點擊輸入。要注意終端機並不會顯示輸入的密碼。
整個安裝程序大概花上幾分鐘,耐心等候完成。
在Xcode專案應用CocoaPods
當 CocoaPods 完成安裝,便可以開始使用。我們將會建立一個簡單的專案,以展示如何使用 CocoaPods 在專案內安裝 Firebase 類庫。
首先,新增一個 Xcode 專案並命名為 CocoapodsTest
。關閉專案並返回終端機,使用 cd
(change directory) 指令以導航至新的 Xcode 專案。假設你把新專案存儲在桌面 (Desktop),輸入以下的指令:
cd ~/Desktop/CocoapodsTest
然後,我們需要在專案的根目錄下新增一個 Podfile 文件,被安裝的 pods 都會寫入至 Podfile 以作紀錄及追踪更新。日後當你呼叫 CocoaPods 去安裝或更新現存的 pods,CocoaPods 便會前往 Podfile 搜找指令。
要建立 Podfile 是相當簡單,輸入以下指令:
pod init
這樣便會生成 Podfile,像這樣:
# Uncomment this line to define a global platform for your project # platform :ios, '9.0' target 'CocoapodsTest' do # Comment this line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for CocoapodsTest end
這是 Podfile 最基本的結構。然後你需要為檔案作出修改及指定所需的 pods。我們將會用到一個名為 Vim 的文字編輯器,Vim 也是自帶在 Mac 電腦並容許開發者在終端機編輯內容。當然,你也可以使用其他的文字編輯器,如 Atom。
根據以下指令在Vim打開檔案:
vim Podfile
假設你在Xcode專案中只是使用 Firebase,故此作出編輯 Firebase pod 的配置如下:
# Uncomment this line to define a global platform for your project # platform :ios, '9.0' target 'CocoapodsTest' do # Comment this line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for CocoapodsTest pod 'Firebase' end
就是這樣。輸入以下指令離開 Vim:
:wq
:wq
的意思是編寫及離開 (write and quit),當存儲完成後便會關閉 Vim。
開始最後一個步驟之前,先重溫一次以上的配置:
- Podfile 描述 Xcode 專案中類庫之間的依賴關係。所以,我們要指明目標類庫,就是這個教學的範例測試。
- ‘use_frameworks’ 選項告知 CocoaPods 使用類庫而非靜態資源庫。這是 Swift 專案必需的。
- 我們剛剛輸入的一行指令 (
pod ‘Firebase’
) 使 CocoaPods 知道我們需要用上 ‘Firebase’ pod。或許你會提出一個疑問:我們怎樣知道 pod 的名稱?在一般情況下,你可以在 pod 的文檔中找到或在 cocoapods.org 搜尋。
現在你應該更加明瞭 pod 檔案,在終端機輸入下列指令以完成最後步驟:
pod install
CocoaPods 現在開始安裝 Firebase pod!下載後它會建立一個名為 ‘CocoapodsTest.xcworkspace’ 的 workspace。這個檔案包含了你的 Xcode 專案、 Firebase 資源庫、其他相依性類庫和文檔。
由現在開始,我們就使用 CocoapodsTest.xcworkspace
而非 CocoapodsTest.xcodeproj
。
開啟 Xcode Workspace
當你開啟 ‘CocoapodsTest.xcworkspace’,你會找到 ‘CocoapodsTest’ 專案和 ‘Pod’ 專案,二者皆存放於 ‘Firebase’ 資源庫內。
回到 Xcode並進入IDE,前往 ViewController.swift
。在頂端輸入下列指令:
import Firebase
這樣做可以把 Firebase pod 滙入,並在 CocoaPods 中使用。
結語
CocoaPods 是一支超級簡單的工具,大大減輕 iOS 開發者管理類庫的時間和工序。希望這篇教學能夠讓你對 CocoaPods 有初步的認識和了解。如果有任何疑問或困難,歡迎留言查詢。
後記
今年3月中 AppCoda 也曾經來過台北舉辦了一場工作坊,當天 Simon Ng 就給大家簡介了 Cocoapods,歡迎點擊這裡重溫當日的簡報。
另外,我們將在不久的將來再次來台灣舉辦工作坊,有興趣參加的人士歡迎點擊連結留下聯絡資料,當日期地點落實後便會發送詳情給你。