CocoaPods 簡介 : 如何輕鬆管理 Swift / Objective-C 的類庫

CocoaPods 簡介 : 如何輕鬆管理 Swift / Objective-C 的類庫
CocoaPods 簡介 : 如何輕鬆管理 Swift / Objective-C 的類庫
In:

有別於一貫 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。

你會被提示輸入根密碼並點擊輸入。要注意終端機並不會顯示輸入的密碼。

cocoapods-install

整個安裝程序大概花上幾分鐘,耐心等候完成。

在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-cocoapods-org

現在你應該更加明瞭 pod 檔案,在終端機輸入下列指令以完成最後步驟:

pod install

CocoaPods 現在開始安裝 Firebase pod!下載後它會建立一個名為 ‘CocoapodsTest.xcworkspace’ 的 workspace。這個檔案包含了你的 Xcode 專案、 Firebase 資源庫、其他相依性類庫和文檔。

pod-install

由現在開始,我們就使用 CocoapodsTest.xcworkspace 而非 CocoapodsTest.xcodeproj

開啟 Xcode Workspace

當你開啟 ‘CocoapodsTest.xcworkspace’,你會找到 ‘CocoapodsTest’ 專案和 ‘Pod’ 專案,二者皆存放於 ‘Firebase’ 資源庫內。

pod-xcode-workspace

回到 Xcode並進入IDE,前往 ViewController.swift。在頂端輸入下列指令:

import Firebase

這樣做可以把 Firebase pod 滙入,並在 CocoaPods 中使用。

結語

CocoaPods 是一支超級簡單的工具,大大減輕 iOS 開發者管理類庫的時間和工序。希望這篇教學能夠讓你對 CocoaPods 有初步的認識和了解。如果有任何疑問或困難,歡迎留言查詢。

後記

今年3月中 AppCoda 也曾經來過台北舉辦了一場工作坊,當天 Simon Ng 就給大家簡介了 Cocoapods,歡迎點擊這裡重溫當日的簡報。

另外,我們將在不久的將來再次來台灣舉辦工作坊,有興趣參加的人士歡迎點擊連結留下聯絡資料,當日期地點落實後便會發送詳情給你。

編者按::蘋果將會推出Swift Package Manager,這是一個與 CocoaPods 十分相似的工具,它將會內置於 Swift 系統中,以便自動管理相依性類庫。Swift Package manager 將會在今年秋天推出,屆時我們將會為大家再作介紹。請密切留意
譯者簡介:小秘,業餘博客,翻譯新手,最愛睡覺,喜歡旅遊。

原文Using CocoaPods in Your Swift and Objective-C Projects

作者
Gregg Mojica
軟體工程師及Gradology公司的資訊科技總監。在繁忙的工作以外,他享受於寫作、攝影和分享所見所聞。Gregg熱衷程式開發,曾在app store發佈數個apps,客戶包括美國康奈爾大學、各式地方企業和初創公司。可以在推特或LinkedIn聯絡Gregg。
評論
很好! 你已成功註冊。
歡迎回來! 你已成功登入。
你已成功訂閱 AppCoda 中文版 電子報。
你的連結已失效。
成功! 請檢查你的電子郵件以獲取用於登入的連結。
好! 你的付費資料已更新。
你的付費方式並未更新。