作为iOS开发者,第三方类库的使用是最经常的,但鉴于第三方类库的不断更新以及其可能需要依存其他类,如果要使用最新版那么我们需要重新下载再添加到项目中,无疑带来一些繁琐的麻烦,那么现在这里就有一款能解决这个问题的工具————cocoapods, 类库管理工具。 它使用不是很复杂,只需要几条命令,我们应该要掌握它。

一、配置安装环境

安装开发工具: Xcode    

因为cocoapods需要Ruby环境,你可以借助第三方软件Rvm来更新管理它,首先是安装Rvm,打开Mac终端,输入:  

curl -L http://get.rvm.io | bash -s stable

查看Rvm版本:

rvm -v

加载启用Rvm:

source ~/.rvm/scripts/rvm

安装更高版本的Ruby(系统自带的版本太低),需要一点时间等待:

rvm install 2.0.

如果安装不行,可能是因为Ruby使用的源为cocoapods.org,安装网上建议的换成淘宝的源:

 gem sources --remove http://rubygems.org/
gem sources -a https://ruby.taobao.org/

换好了后可以使用一下命令查看:

gem sources -l

显示结果为:

CURRENT SOURCES            

http://ruby.taobao.org/

安装好之后,查看ruby版本2.0:

ruby -v

设置Ruby 2.0为默认版本:

rvm default 2.0.

二、安装cocoapods   

在终端输入如下安装命令 (在执行pod setup命令时,时间可能有点长,我等了30多分钟,以为是卡在这里了,反复强行结束终端几次,最后没管它,一段时间后看成功了):

 sudo gem install cocoapods
pod setup

三、cocoapods的使用之AFNetworking例

首先,我们可以试下如下命令搜索,看看cocoapods是否支持AFNetworking(是支持的,具体结果我就不贴出来了):

pod search AFNetworking

然后,切换到你需要添加类库的iOS程序文件夹根目录,比如你在桌面建立了一个cocoapodstest01的项目,那么你在终端用cd命令切换到这个文件夹下:

cd /Users/xxx用户名/Desktop/cocoapodsTest01/

建立一个名为Podfile的文件:

vim Podfile

然后再Podfile中输入如下命令(这个命令是开发AFNetworing的作者给你的):

platform :ios, '7.0'
pod "AFNetworking", "~> 2.0"

然后输入如下命令保存退出:

:wq

继续输入命令,利用cocoapods下载AFNetworing类库:

pod install

最终成功的结果输出如下:

EricmatoMacBook-Pro:CocoaPodsDemo ericwang$ pod install
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.0.)
Generating Pods project
Integrating client project [!] From now on use `CocoaPodsDemo.xcworkspace`.

这里的结果最后有个 CocoaPodsDemo.xcworkspace文件,我们在桌面的项目文件中,需要打开这个文件,而不是xcodeproj文件,这是你会看到AFNetworing已经成功导入了,你直接引用头文件测试吧!

更新第三方类库,需要切换到Podfile统一目录下,输入如下命令:

pod update

    

  

    

cocoapods 类库管理利器的更多相关文章

  1. OS X第三方类库管理工具cocoapods入门

    一.简介 什么是cocoapods?--是OS X和iOS下一个第三方类库管理工具.通过cocoapods,可以为项目添加"Pods"依赖库,并且管理其版本. cocoapods好 ...

  2. Xcode push带有cocoapods类库的项目到git仓库

    关于git之一点不熟悉,以前公司的项目搭建,版本控制这块,都是有专门的人在做,当然那时候也是用的git项目中也包含了cocoapods类库,当前公司比较闲, 所以研究了下git,用的是git.osch ...

  3. [转]Linux后台进程管理利器:supervisor

    FROM : http://www.liaoxuefeng.com/article/0013738926914703df5e93589a14c19807f0e285194fe84000 Linux后台 ...

  4. CocoaPods:管理Objective-c 程序中各种第三方开源库关联

    在我们的iOS程序中,经常会用到多个第三方的开源库,通常做法是去下载最新版本的开源库,然后拖拽到工程中. 但是,第三方开源库的数量一旦比较多,版本的管理就非常的麻烦.有没有什么办法可以简化对第三方库的 ...

  5. Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET

    Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET undefined Package - crawler undefined 科学网- ...

  6. Cocoapods依赖管理

    对于iOS App的开发,几乎都采用了Cocoapods来管理第三方库,那么对于开发人员来说,这是必备技能,必须要掌握如何使用.这篇文章就是介绍如何安装和使用CocoaPods的. 简单来说,就是专门 ...

  7. KVM镜像管理利器-guestfish使用详解

    原文  http://xiaoli110.blog.51cto.com/1724/1568307   KVM镜像管理利器-guestfish使用详解 本文介绍以下内容: 1. 虚拟机镜像挂载及w2k8 ...

  8. linux下远程管理利器-tmux

    linux下远程管理利器-tmux 1.控制键       控制键就是tmux的主键.当你在tmux环境下按下这个键的时候,tmux就会把你后面输入的指令,解析成它内置的功能.tmux默认的控制键是 ...

  9. scribefire 多博客管理利器 安装详解

    scribefire 多博客管理利器 安装详解 一.ScribeFire介绍 ScribeFire 是 Firefox (火狐浏览器)上著名的博客写作工具,目前已跨平台支持多浏览器(Firefox,C ...

随机推荐

  1. IIS上部署网站问题总结

    主要是对使用IIS过程遇到的问题的一些简单总结: 1. 当部署完web系统后,通过浏览器访问,如果遇到问题,一定要仔细阅读抛出来的error信息,很重要!很重要!很重要!说三遍. 2. 当每次尝试修改 ...

  2. [题解](排列组合)luogu_P3223排队

    把老师和女生插到男生中间,先对男生排列:A(n,n),然后把老师插到n+1个空里:A(n+1,2),然后放入女生:A(n+3,m) 但是少考虑了老师之间由1个女生分开的情况,所以把三个人看作一个整体, ...

  3. 解决gap 采用increapment scn 方式 操作。

    ###########1 1.查看备库的scn ⚠️如果控制文件,数据文件,数据文件头部的scn不一致,需要根据日志中的gap的起始sequence# 找到对应的scn col  current_sc ...

  4. C# 枚举与switch用法

    using System; namespace Csharp { class Program { //枚举 public enum TimeOfDay { Morning=, Afternoon=, ...

  5. Spark编程环境搭建及WordCount实例

    基于Intellij IDEA搭建Spark开发环境搭建 基于Intellij IDEA搭建Spark开发环境搭——参考文档 ● 参考文档http://spark.apache.org/docs/la ...

  6. 如何 求Ifeature 的面积

    IArea pArea = pfteature_Source.Shape as IArea;//  IArea来自geometry double dArea = Math.Round(pArea.Ar ...

  7. ElasticSearch搜索demo

    ElasticSearch版本:1.4.1 分词:ik jdk:1.7.67 开发工具:Eclipse 系统:win7 忙活了几天,使用ES做成,就是页面有点丑,demo页面如下: 1.搜索主页 2. ...

  8. flask SQLAlchemy query.filter_by 常用操作符

    常用的filter操作符 下面的这些操作符可以应用在filter函数中 equals: query.filter(User.name == 'ed') not equals: query.filter ...

  9. LVS Direct Routing 直接路由

    1. Direct Routing 直接路由 director分配请求到不同的real server, real server处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务 ...

  10. 从零开始的全栈工程师——js篇2.17(属性和节点获取)

    DOM 一.节点树状图 Document>documentElement>body>tagname 二.常用的节点类型 元素节点(标签) 文本节点(文本节点) 属性节点(标签里的属性 ...