(转)在 Swift 和 Objective-C 项目中使用 CocoaPods

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

2016-07-13  838

作者: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:

# 译者注:在此之前,天朝的朋友们最好先移除原有的 source:

gem sources --remove https://rubygems.org/

# 换成淘宝的:

gem sources -a https://ruby.taobao.org

#Hail GFW !
sudo gem install cocoapods

这句命令会在系统中安装 CocoaPods。CocoaPods 用的是 Ruby 编写,所以它要依赖 OS X 系统自带 Ruby 环境。如果你熟悉 Ruby,其实 Ruby 中的 gems 和 CocoaPods 中的 pods 很像。

这可能会提示你输入密码,输入完按 Enter 就好。注意,密码不会在终端中显示。

这一步会花点时间。耐心点,去喝杯咖啡,等着这一步完成吧。

在 Xcode 项目中使用 CocoaPods

装好 CocoaPods 以后,来看看怎么用吧。我们会创建一个简单的工程,然后示范如何用 CocoaPods 安装 Firebase 库。

首先,创建一个名为 CocoapodsTest 的工程。创建好后,关闭工程,回到终端。使用 cd 命令(修改目录)进入到刚创建的工程中。假设工程保存在桌面上,那命令应该是这样的:

cd ~/Desktop/CocoapodsTest

接下来,我们需要创建一个叫 Podfile 的文件。Podfile 是存在于项目根目录下的一个文件,它负责监控所有你想要安装的 pods 的动向。如果你想要安装或更新 pods,CocoaPods 就会检查一遍 Podfile。

仅需一行代码,就能创建 Podfile:

pod init

CocoaPods 生成 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 中打开 Podfile 文件:

vim Podfile

假设你项目中需要使用 Firebase 库。那么就像下面这样配置:

# 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

这命令表示:写入并退出。Vim 会保存文件做出的修改。

在介绍最后一步之前,我们先来了解下 Podfile 中其他配置的含义:

  • Podfile 描述了 Xcode 项目某个 Target 所需的依赖。因此,我们需要指定 Target,在这个 demo 中,是CocoapodsTest
  • use_frameworks 选项是告诉 CocoaPods 使用 framework 而不是静态库。这在 Swift 项目中是必选。
  • 我们添加的那行(pod 'Firebase')是让 CocoaPods 知道我们要用 Firebase。或许你会好奇,我们怎么知道某个库的 pod 名称的。一般情况下,你可以查看文档,或者在 cocoapods.org 搜索。

现在你应该对 Podfile 有更深入的了解了吧。键入下面命令,来完成整个流程吧:

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

posted @ 2016-08-11 14:42  ishizhen  阅读(412)  评论(0编辑  收藏  举报