手把手教你使用CocoaPods管理你的iOS第三方开源类库

本文转载自:http://kittenyang.com/cocoapods

鉴于我开这个博客的初衷是记录自己平时的技术积累,而我平时又属研究iOS最多,因此这个博客在一定程度上可以说是以iOS技术为主的博客。既然研究iOS,那我在博客的一开始就有必要普及一些基础性、底层的东西。好,今天我们先来认识CocoaPods。

1、什么是CocoaPods?

首先你要知道 “第三方类库” 这个名词。第三方类库,用最通俗易懂的语言讲就是:别人写好的代码,然后你可以直接拿来用。用最少的时间实现自己需要的功能。这就是第三方类库。这也程序 员伟大的地方————开源精神。 好,现在你已经大概对第三方类库有了大致的概念了。那么,如果你的项目中有很多这样的第三方类库(这对商业App来说简直是必然的),要怎么管理呢?比如 一些类库要升级,一些类库依赖另一些类库就必须再拖进来。这时候你就会想,有没有什么东西能自动更新第三方类库、自动添加其依赖的类库呢?这就是 CocoaPods的作用。

2、安装CocoaPods

安装CocoaPods之前,电脑本地需要有Ruby环境。但是苹果不愧是苹果,自带Ruby环境,所以就不用你操心了。现在请打开神器 Terminal (最快途径打开程序或文件:option+空格 搜索)

输入一下命令:

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

然后输入:

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

如果你还不放心,可以验证一下:

gem sources -l

如果出现以上结果,证明你到目前为止做得都是对的。


接下来:

sudo gem install cocoapods

等待一会儿就能安装成功了。

3、使用CocoaPods

现在万事俱备,只欠怎么用了。实际上依然巨简单。

首先找到一个开源类库,这里我以我个人很喜欢一个开源类库举例,就是facebook的 POP 动画开源引擎。

然后,相信我,熟悉使用CocoaPods后你看到这样的画面会像看到亲人一样感动:

类似的还有:

CRNavigationController

ZFDragableModalTransition

说到这里,善于观察共同之处的你有没有这些 "Installtion" 有一个共同点: pod'xxx'。没错!

怎么用?先暂时把"Installtion"挂起,稍后用到。

  • 获取项目( 后缀.xcodeproj )的路径。小技巧:

把这里的 位置 复制。

  • 进入 terminal ,输入:
cd 位置

(cd 的意思就是 进入,进入后面紧跟着的路径)

  • 再输入:
vim Podfile

请注意:必须是 Podfile。你可以理解 Podfile 是一张 汇总单,而且一个项目只需要这么一张汇总单就够了。上面罗列着你的这个项目所有的第三方类库,随时添加到汇总单上,随时从汇总单上移除。就是这么酷炫 :)

这时你会看到类似这样的画面:

对没错,现在这就是一张空白的汇总表,因为你还没有往上面填入你想要的类库的信息。那要填些什么呢?

输入” i “,进入编辑模式。

还记得刚刚挂起的"Installtion"吗? 大胆地输进去吧。就像这样:

然后,按下键盘左上角 esc 按钮,这样就退出编辑模式;再输入 :wq 就可以功成身退了。

现在你已经把表格填好了,最后一步,通知CocoaPods去下载这些类库,并自动地帮你安装好。

你只需要输入:

pod install

( 更新类库就是 pod update )

接下来,只要等着它乖乖完成你交给它的任务就行了。

然后你就会看到这样的成功提示:

*tips:

最后一句:[!] From now on use "CocoaPodsDemo.xcworkspace". 的意思是,以后你不要打开 .xcodeproj 后缀的文件了,我已经帮你把它添加进了 .xcworkspace后缀的文件了。不信,你看看原先 xcodeproj的目录。

没错吧,现在你打开.xcworkspace后缀的文件看看:

果然已经把之前的 .xcodeproj放入了 .xcworkspace。除此之外,还多了一个 Pods的工程。这个 Pods的工程就是你的第三方类库的容身之处啦。

不信,你看:

怎么样,都进来了吧。

好啦,你已经学会使用CocoaPods了,写代码去吧!

转载于:https://www.cnblogs.com/Zerone-Lee/p/4574933.html

手把手教你使用CocoaPods管理你的iOS第三方开源类库相关推荐

  1. 保姆级教程!手把手教你使用Longhorn管理云原生分布式SQL数据库!

    作者简介 Jimmy Guerrero,在开发者关系团队和开源社区拥有20多年的经验.他目前领导YugabyteDB的社区和市场团队. 本文来自Rancher Labs Longhorn是Kubern ...

  2. 【Git】手把手教你使用git管理代码 (上)

    Git 是一个开源的分布式版本控制系统,是目前世界上最先进.最流行的版本控制系统.可以快速高效地处理从很小到非常大的项目版本管理. 特点:项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和 ...

  3. 【谨慎学习】手把手教你破解网站管理后台帐号密码

    [导读] 对于网站运行的个人站长而言,最担心的是应如何有效且安全的去管理自己的网站,否则自己辛辛苦苦经营的网站就会被不请自来的不速之客给攻破,轻则站点数据被窃取,重则整个网站都被攻陷,导致无法恢复. ...

  4. mdx格式的词典用什么软件打开_抄作业了!手把手教你安装欧路词典(ios系统为例)...

    喜欢用pad学习的工作党.学生党,应该也绕不过英语学习. 当你心血来潮阅读一本英文小说-- 当你被逼无奈研究一篇英文文献-- 当你故作高雅浏览一则国际新闻-- 你总会有不认识的ABC,一边感叹自己的弱 ...

  5. 手把手教你在应用里用上iOS机器学习框架Core ML

    2017-06-10 Cocoa开发者社区 2017年的WWDC上,苹果发布了Core ML这个机器学习框架.现在,开发者可以轻松的使用Core ML把机器学习功能集成到自己的应用里,让应用变得更加智 ...

  6. ffmpeg实战教程(十一)手把手教你实现直播功能,不依赖第三方SDK

    直播,2016最火的技术之一了,更多的关于直播的知识:http://blog.csdn.net/king1425/article/details/72489272 -这篇我们就不依赖任何集成好的SDK ...

  7. 手把手教你如何利用SSH来安装IOS越狱APP

    由于之前项目需要,需要扫描WiFi强度来进行室内定位,但是由于苹果自身没有将扫描WiFi强度的接口放出来,所以只能调用私有的API,因此要安装越狱的APP. 参考资料: http://blog.chi ...

  8. 手把手教你使用Gene6FTP远程管理

    如何对Gene6FTP进行远程管理呢? 请看手把手教你使用Gene6FTP远程管理: http://softbbs.pconline.com.cn/topic.jsp?tid=7182669 转载于: ...

  9. 手把手教你发布自己的CocoaPods开源库

    本文讲的是手把手教你发布自己的CocoaPods开源库,发布自己的cocoapods开源库按照以下步骤,良心制作,包教包会!! 下面我会通过一个名为IFMMenu的项目来讲解一下整个过程. 1.写好代 ...

最新文章

  1. 计算机科学和Python编程导论(一) 计算机相关理论
  2. 网管管理的12种方法
  3. 第四范式祝大家 HAPPY NIU YEAR!
  4. 园林计算机制图在计算机上的应用,浅谈计算机园林效果图在园林景观设计中的运用...
  5. Flutter之Center
  6. 【kafka】kafka 数据重复的一个 案例
  7. django写一个简单的登陆注册
  8. 数据结构与算法python—7.链表题目leetcode总结
  9. 手把手教你用jmeter做压力测试(详图)
  10. 卖桃者说(1)有效学习
  11. iOS 集成苹果登录及苹果图标的制作要求
  12. Conflux项目进度报告 十月第一期
  13. 关于Python可视化Dash工具
  14. 流程图和火车程序Jackson图
  15. android指纹解锁分析,浅析4种手机指纹解锁方式的优劣势
  16. 自由软件许可证GPL
  17. ajax获取涨停股票接口,80后股神研究的两个涨停买入法!(图解)
  18. java tika pdf_TIKA提取PDF
  19. 阿里云大数据分析师ACP认证 视频教程
  20. vue 父子和子父传值

热门文章

  1. 【HDU - 1251 】统计难题(字典树,求拥有公共前缀的字符串数量)
  2. 【HDU - 1045】Fire Net (dfs 或二分图)
  3. php create()方法,ThinkPHP中create()方法自动验证实例
  4. c语言中调试时go的作用,C语言调用GO
  5. 直线的端点画垂线的lisp_【以课说法】线段、射线、直线
  6. ghostblog主题_读Ghost博客源码与自定义Ghost博客主题
  7. 终于,我读懂了所有Java集合——map篇(多线程)
  8. 你的代码是否按照高内聚、低耦合的原则来设计的?
  9. 跨平台2D/3D游戏开发框架libGDX发布1.2.0更新
  10. 10大清宿便排毒方法及简单排毒瘦小腹运动