先谈下,我们为什么要使用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. POJ3784 Running Median

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1670   Accepted: 823 Description For th ...

  2. Intel 80x86 Linux Kernel Interrupt(中断)、Interrupt Priority、Interrupt nesting、Prohibit Things Whthin CPU In The Interrupt Off State

    目录 . 引言 . Linux 中断的概念 . 中断处理流程 . Linux 中断相关的源代码分析 . Linux 硬件中断 . Linux 软中断 . 中断优先级 . CPU在关中断状态下编程要注意 ...

  3. TCP/IP详解 学习二

    链路层: 在 T C P / I P协议族中,链路层主要有三个目的:(1)为 I P模块发送和接收 I P数据报:( 2)为 A R P模块发送 A R P请求和接收 A R P应答:( 3)为 R ...

  4. JAVA多线程经典范列:生产者与消费者

    * 第一:生产者 生产的消费品 存放到仓库中,当仓库满时,生产者停止生产 * 第二:消费者 到仓库中 使用消费品,当仓库没有消费品时,停止消费 * 第三:生产者 在仓库满停止生产后 通知消费者去消费 ...

  5. Linux—fork函数学习笔记

    fork()函数 在赋值语句pid = fork();之前,只有一个进程在执行这段代码,但在这条语句之后,就变成两个进程在执行了,这两个进程的代码部分完全相同.> 两个进程中,原先就存在的那个被 ...

  6. POJ2965The Pilots Brothers' refrigerator(枚举+DFS)

    The Pilots Brothers' refrigerator Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 22057 ...

  7. Python socket编程之三:模拟数据库循环发布数据

    1. f1.py # -*- coding: utf-8 -*- import socket import struct import sqlalchemy import pandas ####### ...

  8. 转 web项目中的web.xml元素解析

    转 web项目中的web.xml元素解析 发表于1年前(2014-11-26 15:45)   阅读(497) | 评论(0) 16人收藏此文章, 我要收藏 赞0 上海源创会5月15日与你相约[玫瑰里 ...

  9. IIS短文件名泄露漏洞危害及防范方法

    危害级别:轻微 IIS短文件名泄露漏洞 WASC Threat Classification 描述: Microsoft IIS在实现上存在文件枚举漏洞,攻击者可利用此漏洞枚举网络服务器根目录中的文件 ...

  10. Java操作Excel(读、写、搜索关键字、插入图片)

    import java.io.File; import java.io.IOException; import jxl.Cell; import jxl.Sheet; import jxl.Workb ...