先谈下,我们为什么要使用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. 【poj3714】 Raid

    http://poj.org/problem?id=3714 (题目链接) 现在才搞平面最近点对..感觉有点尴尬 题意 给出平面上两组点,每组n个,求两组点之间最短距离 Solution1 平面最近点 ...

  2. HDU2222 Keywords Search [AC自动机模板]

    Keywords Search Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others ...

  3. OPENSSL编程入门学习

    相关学习资料 http://bbs.pediy.com/showthread.php?t=92649 https://www.openssl.org https://www.google.com.hk ...

  4. PL/0编译器(java version)–Praser.java

    1: package compiler; 2:   3: import java.io.IOException; 4: import java.util.BitSet; 5:   6: /** 7: ...

  5. JAVA的面向对象编程--------课堂笔记

    面向对象主要针对面向过程. 面向过程的基本单元是函数.   什么是对象:EVERYTHING IS OBJECT(万物皆对象)   所有的事物都有两个方面: 有什么(属性):用来描述对象. 能够做什么 ...

  6. 静态内部类和Lazy<T>优雅实现单例

    public class Singleton { private Singleton() { } public static Singleton GetInstance() { return Conc ...

  7. enum是不是"继承"int

    enum Color : short { Nono=0, Black=1 } 我们知道基元类型(值类型), 是不可能被继承的,那这里的   :short 到底是什么意思? 我个人理解这里是用来限制取值 ...

  8. 求任意长度数组的最大值(整数类型)。利用params参数实现任意长度的改变。

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. JavaScript中call、apply、bind、slice的使用

    1.参考资料 http://www.cnblogs.com/coco1s/p/4833199.html   2.归结如下 apply . call .bind 三者都是用来改变函数的this对象的指向 ...

  10. JS闭包(转载加整理)

    原文地址:http://www.jb51.net/article/24101.htm 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.变量 ...