一、CocoaPods简介

1.什么是CocoaPods

CocoaPods是iOS的包管理工具。

2.为什么要使用CocoaPods

在开发iOS项目时,经常会使用第三方开源库,手动引入流程复杂,并且库之间还存在依赖关系,更增加了手动管理的难度。开源库如果升级了,你也想用最新版本,还需要重新手动导入,这大大增加了工作量。但用了CocoaPods后,安装和升级都只是一句命令的事情,让你可以专于业务本身。

二、CocoaPods安装

1. 安装Ruby

CocoaPods基于Ruby语言开发而成,因此安装CocoaPods前需要安装Ruby环境。幸运的是Mac系统默认自带Ruby环境,如果没有请自行查找安装。检测是否安装Ruby:

$ gem -v
2.0.14

安装则会提示当前Ruby版本。gem介绍:gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/ )源来查找、安装、升级和卸载软件包,非常的便捷。

2. 更换gem源

因为国内网络的问题导致gem源间歇性中断,原因你懂的。因此我们需要更换gem源,使用淘宝的gem源https://ruby.taobao.org/

第一步:移动默认的源

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

第二步:指定淘宝的源

gem sources -a https://ruby.taobao.org/

第三步:查看指定的源是不是淘宝源

$ gem sources -l
*** CURRENT SOURCES *** https://ruby.taobao.org/

如果是https://ruby.taobao.org/,则更换成功。

3. 安装CocoaPods

终于开始安装CocoaPods,说实话本人都快忘记是在写CocoaPods的教程了,囧!确认改成淘宝源后执行以下命令进行安装:

sudo gem install cocoapods

稍等片刻即可安装完成,输入以下命令检测是否安装成功:

$ pod --version
0.39.0

成功则会提示CocoaPods版本,到此安装已告一段落。

三、CocoaPods使用实例

首先新建一个iOS工程MyDemo,在该工程中演示CocoaPods的使用。

1. 创建Podfile

进入工程的根目录,创建Podfile文件,创建完毕的目录如下图:

2. 编辑Podfile

根据需要,我们可以在Podfile文件中写入我们需要的第三方库,这里以AFNetworking和MJRefresh为例,Podfile内容如下:

platform :ios, '7.0'
pod 'AFNetworking', '~> 3.0'
pod 'MJRefresh','~> 3.1'

这段代码的意思是,当前类库支持的iOS最低版本是iOS 7.0, 要下载的两个类库的版本分别为 3.0、3.1。

3. pod install 导入第三方库

这时候,你就可以利用CocoPods下载AFNetworking和MJRefresh类库了。在终端中进入工程根目录,运行以下命令:

$ cd /Users/myl/Desktop/IOS/MyDemo
$ pod install
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (3.0.4)
Installing MJRefresh (3.1.0)
Generating Pods project
Integrating client project [!] Please close any current Xcode sessions and use `MyDemo.xcworkspace` for this project from now on.
Sending stats

注意最后一句话,意思是:以后打开工程就用 MyDemo.xcworkspace 打开,而不是之前的.xcodeproj文件。你也许会郁闷,为什么会出现.xcworkspace文件呢。这正是你刚刚运行pod install命令产生的新文件。除了这个文件,你会发现还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。点击 MyDemo.xcworkspace 打开工程之后,你会发现工程目录多了一些,你会惊喜地发现,AFNetwoking和MJRefresh已经成功导入项目了!

新的目录结构:

4. pod update 更新第三方库

如果需要引入或删除类库,只需要修改Profile文件后执行以下命令即可:

pod update

5. 工程中使用类库

如果是OC项目,只需在使用的文件中导入该类库的头文件即可:

#import "AFNetworking.h"
#import "MJRefresh.h"

如果是Swift项目,使用OC的类库,需要新建桥接头文件(MyDemo-Bridging-Header.h),在头文件中导入要使用的类库:

#import <AFNetworking/AFNetworking.h>
#import <MJRefresh/MJRefresh.h>

四、常见问题

1. install,update速度慢

出现原因:你本地的repo库太长时间没有更新了
解决办法:pod repo update

原因在于当执行以上两个命令的时候会升级CocoaPods的specs仓库,如果不想在install,update的时候升级specs库,可以使用参数忽略掉
pod install –no-repo-update
pod update –no-repo-update

2. 导入Swift类库

导入Swift语言编写的类库时需要加use_frameworks!,下面以导入Alamofire为例:

platform :ios, '8.0'
use_frameworks!
pod 'Alamofire', '~> 1.3'

3. 官方文档

对于Podfile参数细节,可以查阅官网,再此不做过多介绍。
http://guides.cocoapods.org/


本文首发于马燕龙个人博客,欢迎分享,转载请标明出处。
马燕龙个人博客:http://www.mayanlong.com
马燕龙个人微博:http://weibo.com/imayanlong 
马燕龙Github主页:https://github.com/yanlongma

iOS开发 - CocoaPods安装和使用教程的更多相关文章

  1. iOS开展-CocoaPods安装和使用教程

    原文链接: iOS开展-CocoaPods安装和使用教程 修正已经增加了自己的理解. CocoaPods安装和使用教程 Code4App 原创文章.转载请注明出处:http://code4app.co ...

  2. iOS 网络 -- cocoaPods 安装和使用教程

    Code4App 原创文章.转载请注明出处:http://code4app.com/article/cocoapods-install-usage CocoaPods 是什么? 当你开发iOS应用时, ...

  3. iOS 之 Cocoapods安装

    进入正题前,先来点前奏:了解cocoapods是某天看一个博客,那时才明白原来写项目不用一个个将三方库拷进项目里啊,惊讶的我是一塌糊涂的啊...(原谅我那时还没进入过正规的IT公司....好多你们自然 ...

  4. << CocoaPods安装和使用教程 >>github code4app以及cocoachina 苹果官方文档

    developer.apple.com 英文搜索各个技术的官方介绍文档, 前提是英文过关 cocoachina ios最新新闻, 信息 code4app上有许多组件 http://www.code4a ...

  5. 【转】iOS开发Xcode7真机调试教程

    原文网址:https://www.skyfox.org/ios-xcode7-debug-device.html 从Xcode7开始,Xcode 不需要$99/$299升级开发者直接可以进行真机调试 ...

  6. 74.CocoaPods安装和使用教程

    CocoaPods安装和使用教程  Code4App 原创文章.转载请注明出处:http://code4app.com/article/cocoapods-install-usage 第一: Coco ...

  7. iOS开发 - CocoaPods的常见使用方式

    1 CocoaPods 的安装 1.1 作用: 帮助管理和维护第三方框架,快速的搜索到第三方框架, 然后自动集成到工程里面来, 并编译成一个libPod.a的静态库给我们项目用 1.2 理解:  1. ...

  8. iOS开发 cocoapods的安装以及使用

    一.概要 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库(从一个坑出来,又 ...

  9. iOS开发CocoaPods使用

    一.为什么用CocoaPods iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三 ...

随机推荐

  1. PHP无锁内存nosql---Yac的实战

    无锁内存nosql---Yac的实战 最近在工作使用了yac,所以比较了下Memcache和Yac的高并发读写性能测试,发现Yac要比Memcache快很多(这里没有比较Yac和Apc的性能情况, 不 ...

  2. SLF4J 的几种实际应用模式--之三:JCL-Over-SLF4J+SLF4J

    我们前面已经讲过了 SLF4J 的两种用法:SLF4J+Log4J  和 SLF4J+Logback,那是在比较理想的情况下,所用组件只使用了 SLF4J 这一种统一日志框架的时候.可是 JCL 一直 ...

  3. webpack学习笔记(二)-- 初学者常见问题及解决方法

    这篇文章是webpack学习第二篇,主要罗列了本人在实际操作中遇到的一些问题及其解决方法,仅供参考,欢迎提出不同意见. 注:本文假设读者已有webpack方面相关知识,故文中涉及到的专有名词不做另外解 ...

  4. cstring头文件函数解析

    原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5643829.html 在使用由字符数组或指针组成的字符串的时候,要用到一些函数,这些函数通常包含在 ...

  5. cuda编程学习1——hello world!

    将c程序最简单的hello world用cuda编写在GPU上执行,以下为代码: #include<iostream>using namespace std;__global__ void ...

  6. Android开发遇到手机无法弹出Toast

    今天遇到了一个很奇怪的问题,一个很简单的程序,就是点击按钮弹出一个Toast,但在手机上运行起来,却没有正常弹出Toast 第一反应就是看看是否调用了show方法,很显然,并不是这个低级问题,为了确定 ...

  7. Android自学反思总结(下)

    后来陆陆续续过了大半个月,导员给找了一个Udacity在线学习的Android开发教程,只有一个月的免费学习机会,因此很快开始了叫Sunshine的天气应用的开发,教学视频整体是采用先自己思考并填写某 ...

  8. 个人作业2——英语学习APP案例分析

    一.个人体验 1.下载并使用,描述最简单直观的个人第一次上手体验. ①入眼界面华丽,有正能量的名言警句配上很有意境的图片,界面美观. ②内容丰富,有许多精选英文文章,同时配有中文翻译,便于理解. ③能 ...

  9. PRINCE2的好处是什么?使用PRINCE2受益非浅

    项目管理促进了全球许多公共部门与私营企业的经济活动. 优秀的项目管理意味着使用更少的资源在更短的时间内达到一个成功的结果,经过良好培训的项目经理能够帮助组织更加富有创新力,取得成功. 对那些希望展现自 ...

  10. 【C语言】gets()和scanf()函数的区别

    scanf函数与gets函数 scanf函数和gets( )函数都可用于输入字符串,但在功能上有区别.若想从键盘上输入字符串"hi hello",则应该使用gets函数. gets ...