在 Swift 和 Objective-C 項目中使用 CocoaPods

作者: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 打開工程,你會看到名為 CocoapodsTestPod 的兩個項目,其中 Pod 中包含了 Firebase 庫。

現在,唯一需要做的,就是引用 Firebase 了。在 Xcode 中找到 ViewController.swift 文件,然后在最上面引入:

import Firebase

瞧瞧!你已經成功用上了 CocoaPods。

最后

CocoaPods 這么棒的工具值得每個 iOS 開發者珍藏。希望這篇教程能幫到你,如果有想法或疑問,歡迎評論。

另外,Apple 正準備發布 Swift 包管理器(Swift Package Manager),它和 CocoaPods 非常像,而且它直接內置在了 Swift 環境中,自動進行依賴管理。Swift 包管理器將在這個版本中發布。等官方發布后,我們再來討論討論。敬請關注

(譯者注:翻譯組其他文章推薦: 《在團隊開發中使用 CocoaPods 的小技巧》)

本文由 SwiftGG 翻譯組翻譯,已經獲得作者翻譯授權,最新文章請訪問 http://swift.gg

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本文由yake_099(博客)翻譯自raywenderlich,作者:Joshua Greene 原文:How t...
    東引甌越閱讀 2,072評論 0 49
  • CocoaPods 是什么? CocoaPods 是一個負責管理 iOS 項目中第三方開源庫的工具。CocoaPo...
    朝洋閱讀 25,741評論 3 51
  • 一、什么是CocoaPods CocoaPods是iOS項目的依賴管理工具,該項目源碼在Github上管理。開發i...
    公子無禮閱讀 1,040評論 0 1
  • “第一次看你不太順眼,誰知道后來關系那么密切,我們一個像夏天一個像秋天,卻能把每個冬天變成了春天。”歌詞里的故...
    yumi蜜閱讀 250評論 0 1
  • 一 A君今年32歲,在一家IT公司做程序員。這一天他忙完最后一行代碼,打開日程表上看了看晚上的安排,是一場相親。 ...
    江南的故事酒館閱讀 289評論 0 1