先谈下,我们为什么要使用CocoaPods,它能为我们做什么吧。

  所有开发过iOS应用的小伙伴们都知道,在整个项目中,第三方库的引用必不可少(特别感谢那些优秀第三方开源库的作者,给我们提供了多大的便捷啊)。而在我们公司开发的项目中,则引用了近20个第三方库(AFNetworking,fmdb,SDWebImage,PinYin4Objc,CocoaAsyncSocket,SSZipArchive,ZBarSDK等等),那么当我引入的时候我需要做以下工作:

  第一:复制开源库的源码文件到项目中去;第二:添加开源库依赖的系统的framework;第三,对于不同的开源库,配置相应的编译参数(例如-fno-objc-arc,-licucore等等);第四:管理这些依赖包的更新。

  这么多操作,也许有人认为很简单,没什么复杂的,慢慢整就是。但是,你不觉得有点淡淡的疼?我们需要的是将尽可能多的时间精力投放到有意义的工作上。而不是傻逼似的操作。一两次练练手是可以的。当然,人类的思维是无法想象的。有问题,就有对应的解决方案。使用CocoaPods就可以以非常少的工作量去完成上述操作。好,知道是什么玩意后,我们需要知道怎么用:

  第一步:安装

    Mac下自带ruby,所以可以使用gem命令进行下载安装,命令如下:

      $ sudo gem install cocoapods

      $ pod setup(做的操作是CocoaPods将他的信息从https://github.com/CocoaPods/Specs(所有项目的Podspec文件都托管在这)下载到~/.cocoapods目录下,可能需要时间较长,你可以使用cd命令,进入到此文件夹,然后使用du -sh *来查看进度)

    如果你发现安装不了,那么你可以尝试如下操作:

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

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

      $ gem sources -l

    因为ruby的软件源使用的是亚马逊的云服务,所以被屏蔽了。将其换成国内淘宝的源就行。

    除了上述方案,我们也可以使用CocoaPods的镜像索引来提高下载速度(名为akinliu的兄弟在gitcafe 和 occhina上建立了CocoaPods索引库镜像,都是国内服务器,所以执行索引更新操作时,快很多)。下面就直接上命令:

      $ pod repo remove master

      $ pod repo add master https://gitcafe.com/akuandev/Specs.git (此地址可换为:http://git.oschina.net/akuandev/Specs.git)

      $ pod repo update

  第二步:使用

    在项目的根目录中,建立一个名为Podfile的文件,并编辑,以下面这种格式将依赖库的名字列入文件中就行。格式如下:

      platform:ios

      pod 'Reachability',  '~>3.0.0'

      pod 'RegexKitLite'

    然后在终端中使用cd命令进入到项目根目录,执行如下命令:

      pod install

    简直屌爆了,就这么简单。不过要注意下,执行上述命令后会生成一个“。xcworkspace”的文件,一定要使用这个文件来打开工程。还有就是以后要是更改了Podfile文件,得重新执行一次 pod update 命令。

  补充:使用 pod search '关键字' 命令可以进行第三方开源库的搜索。使用 brew install appledoc 命令可以生成第三方库的帮助文档。另外,也可以为自己的项目创建podspec文件,和使用私有的pods,具体可以自己搜索下。

项目总结(二)--- CocoaPods的简单介绍与使用的更多相关文章

  1. CocoaPods的简单介绍及安装和使用

    CocoaPods的简单介绍及安装和使用   一.CocoaPods是什么? 当你开发iOS应用时,会常常使用到非常多第三方开源类库.比方JSONKit.AFNetWorking等等. 可能某个类库又 ...

  2. Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍

    最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...

  3. Android 驱动(二) IIC简单介绍

    一. I2C简单介绍 I2C(Inter-Integrated Circuit)总线是一种由 Philips 公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C 总线最基本的长处就是简单性 ...

  4. 【转】深入浅出JMS(二)--ActiveMQ简单介绍以及安装

    现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 这篇博文介绍一款开源的JMS具体实现——ActiveMQ.ActiveMQ ...

  5. salesforce lightning零基础学习(二) lightning 知识简单介绍----lightning事件驱动模型

    看此篇博客前或者后,看一下trailhead可以加深印象以及理解的更好:https://trailhead.salesforce.com/modules/lex_dev_lc_basics 做过cla ...

  6. JMS【二】--ActiveMQ简单介绍以及安装

    现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文JMS[一]--JMS基本概念,我们介绍了消息通信的规范JMS,我 ...

  7. JMeter学习(二)工具简单介绍

    一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件, ...

  8. Spark(二) -- Spark简单介绍

    spark是什么? spark开源的类Hadoop MapReduce的通用的并行计算框架 spark基于map reduce算法实现的分布式计算 拥有Hadoop MapReduce所具有的优点 但 ...

  9. Rust 中项目构建管理工具 Cargo简单介绍

    cargo是Rust内置的项目管理工具.用于Rust 项目的创建.编译.执行,同一时候对项目的依赖进行管理,自己主动推断使用的第三方依赖库,进行下载和版本号升级. 一.查看 cargo 版本号 安装R ...

随机推荐

  1. Java的多线程机制系列:(三)synchronized的同步原理

    synchronized关键字是JDK5之实现锁(包括互斥性和可见性)的唯一途径(volatile关键字能保证可见性,但不能保证互斥性,详细参见后文关于vloatile的详述章节),其在字节码上编译为 ...

  2. 洛谷P1203 [USACO1.1]坏掉的项链Broken Necklace

    题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...

  3. sublime text2 ctrl+b出现错误

    查看提示的那个文件,发现是path那里写了一个/,是不符合条件的,得写 //

  4. 使用multi curl进行http并发访问

    curl是一款利用URL语法进行文件传输的工具,它支持多种协议,包括FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET等,我们既可以在命令行上使用它,也可以利用 libcur ...

  5. P1067Warcraft III 守望者的烦恼(十大矩阵问题之七求递推式)

    https://vijos.org/p/1067 守望者-warden,长期在暗夜精灵的的首都艾萨琳内担任视察监狱的任务,监狱是成长条行的,守望者warden拥有一个技能名叫“闪烁”,这个技能可以把她 ...

  6. 找出进程中各线程cpu消耗情况

    以root用户执行以下命令,以PID 5423举例: 1,根据top命令,找到占用CPU高的进程,找到PID  PID USER      PR  NI  VIRT  RES  SHR S %CPU ...

  7. Stream Byte[] 转换

    public byte[] StreamToBytes(Stream stream) { byte[] bytes = new byte[stream.Length]; stream.Read(byt ...

  8. --hdu 2124 Repair the Wall(贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2124 Ac code : #include<stdio.h> #include<st ...

  9. Metropolis Light Transport学习与实现

    这段时间一直在看Metropolis Light Transport(简称mlt),现利用这篇博文把之前看资料已经coding上的一些体会记录下来. 1.Before MLT 在MLT算法被提出之前, ...

  10. mlecms v2.2版权

    inc\tools\smarty 下的Smarty.class.php文件. 找到 187行左右 我们会发现原来的  $dopud =$_template->libfile($dopud);已经 ...