在进行iOS开发的时候,总免不了使用第三方的开源库,比如AFNetworking、SDWebImage等等。使用这些库的时候通常需要:
- 下载开源库的源代码并引入工程
- 向工程中添加开源库使用到的framework
- 解决开源库和开源库以及开源库和工程之间的依赖关系、检查重复添加的framework等问题
- 如果开源库有更新的时候,还需要将工程中使用的开源库删除,重新执行前面的三个步骤,是不是很麻烦啊。。。
自从有了CocoaPods以后,这些繁杂的工作就不再需要我们亲力亲为了,只需要我们做好少量的配置工作,CocoaPods会为我们做好一切!
**
首先我们就要了解什么是CocoaPods
**
CocoaPods是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程连接起来,供我们开发使用。
使用CocoaPods的目的是让我们能自动化的、集中的、直观的管理第三方开源库。
**
一、下面就是CocoaPods的使用了:
**
清除原有的镜像
gem sources -r https://rubygems.org/把镜像设置为淘宝镜像
gem sources -a https://ruby.taobao.org/查看镜像是否更换成功
gem sources –l
**
二、将自己的工程安装CocoaPods:
**
安装Podfile文件
经过以上三步(红色标记),可以看到我们的工程多出了一个Pofile文件(绿色标记)
接着直接执行pod install –no-repo-update
上面绿色跟黄色的信息就是说我们还没有导入任何第三方,不用管,没什么影响
完成了以上步骤,说明我们的工程已经安装好了CocoaPods,接下来就是将我们需要的开源库导入即可,用我们常用的AFNetworking来举例:
1. 打开.xcworkspace添加pod ‘AFNetworking’, ‘~> 2.3.1’
2.关闭我们的工程,在终端再次输入pod install –no-repo-update
发现我们的工程中已经导入了AFNetworking这个第三方开源库了,是不是很方便呢?
另外,总结一些常用的pod终端命令行:
- Pod 安装
# 添加源
$ sudo gem sources -a https://ruby.taobao.org/
# 删除源
$ sudo gem sources -r https://rubygems.org/
# 安装
$ sudo gem install cocoapods
# 设置
$ pod setup
- gem 常用命令
# 查看gem源
$ gem sources –l
# gem自身升级
$ sudo gem update --system
# 查看版本
$ gem --version
# 清除过期的gem
$ sudo gem cleanup
# 安装包
$ sudo gem install cocoapods
# 删除包
$ gem uninstall cocoapods
# 更新包
$ sudo gem update
# 列出本地安装的包
$ gem list
- pod 命令汇总
# 创建默认的 Podfile
$ pod init //pod --help install
# 第一次使用安装框架 //只用安装一次,之后使用 添加删除都用 pod update --no-repo-update
$ pod install
# 安装框架,不更新本地索引,速度快
$ pod install --no-repo-update
# 今后升级、添加、删除框架,或者框架不好用
$ pod update
# 更新框架,不更新本地索引,速度快
$ pod update --no-repo-update
# 搜索框架
$ pod search XXX#
帮助
$ pod --help
另外更新CocoaPods出现了错误的几种情况以及解决办法:
使用命令:sudo gem install cocoa pods 出现了下面的问题
ERROR: While executing gem … (Errno::EPERM)
Operation not permitted - /usr/bin/pod
使用命令:sudo gem update —system 出现了下面的问题
ERROR: While executing gem … (Errno::EPERM)
Operation not permitted - /usr/bin/update_rubygems
貌似是应为gem版本过老,我使用了下面的方法
sudo gem install -n /usr/local/bin cocoapods –pre
结果成功了,执行下面的:
pod —version 就可以看到pod的版本号了