(转)在 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

时间: 2024-10-11 18:15:13

(转)在 Swift 和 Objective-C 项目中使用 CocoaPods的相关文章

Swift & Objc 在同一个项目中的使用

在WWDC大会中发布了Swift让人眼前一亮.终于加了很多的现代编程语言该有的东西.很早年以前玩C#3.0+的时候这些差不多类似的 已经用的烂熟的东西终于一点一点的在看Swift Programming Language的时候再唤醒. Swift较之于OC(Objective-C)在愈发上几乎是一门新的语言了,幸运的是Swift和OC都是出自苹果大家庭,还能在一张桌子上吃饭.也就是说在升级项目 的时候你可以考虑使用Swift开发新的功能,调用已有的部分或者被已有的部分调用.或者在Swift开发的

iOS项目中使用CocoaPods问题解决方案

文/yehot(简书作者)原文链接:http://www.jianshu.com/p/a2007d8e2607著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 为什么iOS项目中应该使用CocoaPods作为第三方依赖管理工具?因为: (全文完) 开个玩笑.真正的原因是这样: 目录: 从一个bug说起 分析需求及解决方案 确定方案 CocoaPods学习资料 一.从一个bug说起: 1.公司的项目里统一使用SVG格式的图片:2.GitHub上只有一个star数超过一千的SVG解析库

如何在 Swift 项目中使用 CocoaPods

4个步骤,将 CocoaPods 导入 Swift 1.创建.编辑 Podfile 文件并 pod install 2.使用 File -> New -> File- 创建一个 Header File(iOS->Source->HeaderFile 模板),名字为 xxxx.h. 3.打开项目的 Build Settings,设置 Objective-C Bridging Header 为 xxxx.h. 4.编辑 xxxx.h,将想要导入的库 import 到这里,例如: #im

怎样在Swift中使用CocoaPods

怎样在Swift中使用CocoaPods 它不是神秘的亚马逊区域的部落人用手捡出来的生可可的豆荚,肯定不是!让CocoaPods website来回答可能是最好的: CocoaPods是Cocoa项目的依赖管理工具.它有上千个能帮你优雅地扩充自己项目的库. 优雅地扩展项目听起来很令人好奇,但是什么是依赖管理工具呢?你为什么会需要它呢? 无论你正在创建一个什么样的app,你都有可能会用到别的开发者的代码,无论是以框架的形式还是库的形式.你可能很熟悉UIKit和Foundation,这两个都是苹果提

OC项目中使用Swift

OC项目中使用Swift 本文版权归作者所有,如需转载请联系孟祥月 CSDN博客:http://blog.csdn.net/mengxiangyue 独立博客:http://mengxiangyue.com 最近公司的项目开始计划使用Swift,由于原先的工程都是使用OC编写的,不可能一下全部转换成Swift,所以采用OC与Swift混编的方式是最好的选择.这篇文章只是一个简单的介绍,并没有太高深的知识. 我新建了一个演示的OC工程,当然你可以使用你已经存在的OC的工程.如果我们想要在OC工程中

在项目中同时使用Objective-C和Swift

苹果发布的Swift语言可以和之前的Objective-C语言同时存在于一个项目中. 可能有人会认为是同一个类文件中既可以有Objective-C也可以有Swift,这是不对的.同一个类文件或同一个代码块中,不可以同时有这两个语言的代码,而是单独的Swift类文件或Objective-C类文件之间可以相互调用. 接下来就说说在Objective-C类中如何引用swift类和在Swift类中引用Objective-C类的具体步骤. 在Swift中使用Objective-C 首先创建一个Swift的

在 Swift 项目中实现侧滑菜单-利用 SWRevealViewController

你可以完全自己手动写一个侧滑菜单,但是现在在 GitHub 上面已经有很多免费的开源库了,如果不是有很特别的需求,大可不必新建一个轮子. 在这里我使用的这个第三方库名字叫做 SWRevealViewController,作者是 John Lluch.这个免费的类库提供了很方便快捷的方法去把侧滑菜单加入到你的 App 里面,而且它还提供了很多个性化的设置项.它是用 Objective-C 来写的,但是我们也可以很方便的在 Swift 项目中去使用它.你分分钟便可学会如何使用. 首先来看一下我们的

在OC项目中添加Swift文件并实现混合编程

对于已经工作的开发者,并不适合也没有条件从一个全新的swift项目开始,进行开发. 虽然网上关于swift和oc混合编程的教程比较多,但是大多是基于 swift项目的,所以对咱们 OCer的参考价值有一定折扣. 现在swift虽然仍然存在很多缺陷,但是鉴于苹果的强势,是时候在项目中把简单的功能交给swift了,给自己,给项目,给swift一个缓冲区,都是极好的. 说了这么多,开始上代码. 现在的背景是: 已经有一个oc项目了,我想要加入 swfit,并且实现 oc调用 swift ,swift调

Swift 项目中常用的第三方框架

Swift 项目中可能用到的第三方框架 字数1004 阅读4091 评论17 喜欢93 这里记录下swift开发中可能用的框架 , 最近浏览了不少,积累在这里,以后用的时候方便查阅.顺便推荐给大家! 这里的框架都是纯swift的 , 感谢开源 ,感谢大神们 . 下拉刷新 BreakOutToRefresh 一个下拉刷新打砖块的swift库 SDRefreshView 简单易用的上拉和下拉刷新 ZLSwiftRefresh - 下拉刷新/上拉加载更多,支持自定义动画,集成简单 GearRefres