作者:Gregg Mojica,原文鏈接,原文日期:2016/06/24
譯者:saitjr;校對:Cee;定稿:千葉知風
CocoaPods——Swift 與 Objective-C 項目的依賴管理工具,iOS 開發者的必備技能。如果你沒有任何 CocoaPods 經歷,那么這篇短文就是為你而寫。我們將會學到什么是 CocoaPods,為什么我們要使用它,還有怎樣開始使用它!
AppCoda 的絕大多數教程寫得都很詳細,本文要比其他傳統教程短,僅作為 CocoaPods 的入門文章。
什么是 CocoaPods
CocoaPods 是 Swift 與 Objective-C 項目的依賴管理工具。如果你曾使用過 Node.js、Ruby on Rails、Python 等,那么你可能對依賴管理工具并不陌生。如果沒有了解過,那也沒關系!依賴管理工具是用來幫助開發者管理庫或包的工具。諸如 CocoaPods 這類依賴管理工具能幫你管理所有庫,而不需要一點一點的手動導入。
設想有這樣一個場景:你正在開發的 app 需要依賴如 Firebase 這樣的第三方庫。
與此同時,Firebase 又依賴著很多其他第三方庫。為了能使用它,你不得不導入 Firebase 和它所依賴的庫。手動去導入無疑是一個單調乏味的過程。
這時,CocoaPods 就有用武之地了。它會自動導入需要的庫,并添加該庫所必須的依賴。下一秒,你就能明白 CocoaPods 有多強大了。
在 Mac 上配置 CocoaPods
CocoaPods 的配置簡單而直觀,一路打怪升級。首先在終端中輸入以下命令來安裝 CocoaPods:
bash
# 譯者注:在此之前,天朝的朋友們最好先移除原有的 source:
gem sources --remove https://rubygems.org/
# 換成淘寶的:
gem sources -a https://ruby.taobao.org
#Hail GFW !
bash
sudo gem install cocoapods
這句命令會在系統中安裝 CocoaPods。CocoaPods 用的是 Ruby 編寫,所以它要依賴 OS X 系統自帶 Ruby 環境。如果你熟悉 Ruby,其實 Ruby 中的 gems 和 CocoaPods 中的 pods 很像。
這可能會提示你輸入密碼,輸入完按 Enter 就好。注意,密碼不會在終端中顯示。
這一步會花點時間。耐心點,去喝杯咖啡,等著這一步完成吧。
在 Xcode 項目中使用 CocoaPods
裝好 CocoaPods 以后,來看看怎么用吧。我們會創建一個簡單的工程,然后示范如何用 CocoaPods 安裝 Firebase 庫。
首先,創建一個名為 CocoapodsTest
的工程。創建好后,關閉工程,回到終端。使用 cd
命令(修改目錄)進入到剛創建的工程中。假設工程保存在桌面上,那命令應該是這樣的:
bash
cd ~/Desktop/CocoapodsTest
接下來,我們需要創建一個叫 Podfile 的文件。Podfile 是存在于項目根目錄下的一個文件,它負責監控所有你想要安裝的 pods 的動向。如果你想要安裝或更新 pods,CocoaPods 就會檢查一遍 Podfile。
僅需一行代碼,就能創建 Podfile:
bash
pod init
CocoaPods 生成 Podfile 像這樣:
ruby
# 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 中打開 Podfile 文件:
bash
vim Podfile
假設你項目中需要使用 Firebase 庫。那么就像下面這樣配置:
ruby
# 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。鍵入一下內容:
bash
:wq
這命令表示:寫入并退出。Vim 會保存文件做出的修改。
在介紹最后一步之前,我們先來了解下 Podfile 中其他配置的含義:
- Podfile 描述了 Xcode 項目某個 Target 所需的依賴。因此,我們需要指定 Target,在這個 demo 中,是
CocoapodsTest
。 -
use_frameworks
選項是告訴 CocoaPods 使用 framework 而不是靜態庫。這在 Swift 項目中是必選。 - 我們添加的那行(
pod 'Firebase'
)是讓 CocoaPods 知道我們要用 Firebase。或許你會好奇,我們怎么知道某個庫的 pod 名稱的。一般情況下,你可以查看文檔,或者在 cocoapods.org 搜索。
現在你應該對 Podfile 有更深入的了解了吧。鍵入下面命令,來完成整個流程吧:
bash
pod install
CocoaPods 現在會安裝 Firebase 了!在 Firebase 下載完成后,它會創建一個名為 CocoapodsTest.xcworkspace
的文件。這個 workspace 目錄包含了原始 Xcode 工程、Firebase 庫與它所需要的依賴。
從現在起,工程入口變成了 CocoapodsTest.xcworkspace
,而不是 CocoapodsTest.xcodeproj
。
打開 Xcode Workspace
如果你通過 CocoapodsTest.xcworkspace
打開工程,你會看到名為 CocoapodsTest
和 Pod
的兩個項目,其中 Pod
中包含了 Firebase
庫。
現在,唯一需要做的,就是引用 Firebase 了。在 Xcode 中找到 ViewController.swift
文件,然后在最上面引入:
import Firebase
瞧瞧!你已經成功用上了 CocoaPods。
最后
CocoaPods 這么棒的工具值得每個 iOS 開發者珍藏。希望這篇教程能幫到你,如果有想法或疑問,歡迎評論。
另外,Apple 正準備發布 Swift 包管理器(Swift Package Manager),它和 CocoaPods 非常像,而且它直接內置在了 Swift 環境中,自動進行依賴管理。Swift 包管理器將在這個版本中發布。等官方發布后,我們再來討論討論。敬請關注。
(譯者注:翻譯組其他文章推薦: 《在團隊開發中使用 CocoaPods 的小技巧》)
本文由 SwiftGG 翻譯組翻譯,已經獲得作者翻譯授權,最新文章請訪問 http://swift.gg。