先谈下,我们为什么要使用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. POJ1947 Rebuilding Roads

    Description The cows have reconstructed Farmer John's farm, with its N barns (1 <= N <= 150, n ...

  2. HYSBZ 4197 寿司晚宴

    Description 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿司晚宴.小 G 和小 W 作为参加 NOI 的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了 n−1 种不同 ...

  3. 以一个权限系统来告别WebForm —开篇

     前言: 当今是互联网的时代,我们己经阻止不了它的发展了,只有跟上脚步,才不会被抛弃,松散了这么久,该紧紧了.  背景: 我之所以说以一个权限应用系统来告别我的WebForm内部系统的生涯,是缘于我自 ...

  4. jquery------.cycle的使用

    代码下载地址:http://malsup.github.io/jquery.cycle.all.js 把里面的代码复制到jquery.cycle.all.js里面 index.jsp <scri ...

  5. Matlab中的括号()[]{}

    Matlab中的括号()[]{} Matlab中经常会用到括号去引用某Array或者是cell的内容,但三者有什么具体区别呢?[ ] 中括号用来构建向量(Vectors)或者是矩阵(Matrices) ...

  6. Google Protocol Buffer 的使用和原理

    Google Protocol Buffer 的使用和原理 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式.它 ...

  7. 自定义NSLog无时间

    #define SXLog(FORMAT, ...) fprintf(stderr,"file --\t%s\nline --\t%d\nmethd --\t%s\noutput --\t\ ...

  8. Cannot attach the file as database 'membership'.

    Cannot attach the file 'D:\GitHome\cae\CAE\App_Data\membership.mdf' as database 'membership'. 说明: 执行 ...

  9. 【转载】一致性hash算法释义

    http://www.cnblogs.com/haippy/archive/2011/12/10/2282943.html 一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karge ...

  10. C++中虚函数的作用浅析

    虚函数联系到多态,多态联系到继承.所以本文中都是在继承层次上做文章.没了继承,什么都没得谈. 下面是对C++的虚函数这玩意儿的理解. 一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你 ...