Cocoapods安装和使用
Cocoapods介绍
前言
对于iOS APP开发中,几乎都采用了Cocoapods来管理第三方库,所以掌握Cocoapods的使用对于iOS开发者是非常重要的。
Cocoapods ?
简单来说,Cocoapods就是专门为iOS工程提供对第三方库依赖的管理工具,我们可以通过Podfile文件方便的管理第三方库,相对于手动管理(手动拖拽和删除)第三方库来说确实方便了很多,节省时间去关心第三方库的使用。
Cocoapods安装
Cocoapods是使用ruby安装的,MAC系统有一个默认的ruby版本,通过下面命令安装
sudo gem install cocoapods
这个时候你会发现安装失败,因为默认的cocoapods网址是国外的,国内无法访问(除非使用VPN)
国内使用ruby安装cocoapods的步骤:
* 打开终端程序
* 删除默认ruby:gem sources —remove https://rubygems.org/
* 添加淘宝ruby:gem source -a https://ruby.taobao.org/
* 查看是否添加成功:gem source -l
* 安装:sudo gem install cocoapods
* 查看某个库: pod search 类库名 //支持模糊查询(如:AFNetwork)
Cocoapods使用
cocoapods使用
cocoapods的使用主要是通过 Podfile文件来自动管理第三方库的
具体步骤
* 打开终端程序
* 进入到要添加第三方库的项目目录
* 通过touch或者直接通过vi编辑器创建一个Podfile文件
* 添加需要使用的库:
pod 'AFNetworking', '~>2.0' //可以指定版本
pod 'MBProgressHUD' //不指定版本默认下载最新的
* 编辑完成,点击esc进入到“最后一行”模式,输入一个":",然后输入 "wq",保存退出
* 然后在终端输入`pod install` 进行安装
* 打开项目目录下的xxx.xcworkspace文件
cocoapods删除
* 删除工程文件夹下的Podfile、Podfile.lock及Pods文件夹
* 删除xcworkspace文件
* 使用xcodeproj文件打开工程,删除Frameworks组下的 Pods.xcconfig及libPods.a引用
* 在工程设置中的Build Phases下删除Check Pods Manifest.lock及Copy Pods Resources(参考下图)
podfile常用命令:
1、pod install
根据Podfile文件指定的内容,安装依赖库,如果有Podfile.lock文件而且对应的Podfile文件未被修改,则会根据Podfile.lock文件指定的版本安装。
每次更新了Podfile文件时,都需要重新执行该命令,以便重新安装Pods依赖库
2、pod update
若果Podfile中指定的依赖库版本不是写死的,当对应的依赖库有了更新,无论有没有Podfile.lock文件都会去获取Podfile文件描述的允许获取到的最新依赖库版本。
3、pod search
查看某个库: pod search 类库名 //支持模糊查询(如:AFNetwork)
4、pod setup
用于更新本地电脑上的保存的Pods依赖库tree。由于每天有很多人会创建或者更新Pods依赖库,这条命令执行的时候会相当慢,还请耐心等待。我们需要经常执行这条命令,否则有新的Pods依赖库的时候执行pod search命令是搜不出来的。
1
多个target中使用相同的Pods依赖库
比如,名称为CocoaPodsTest的target和Second的target都需要使用Reachability、SBJson、AFNetworking三个Pods依赖库,可以使用link_with关键字来实现,将Podfile写成如下方式:
link_with ‘CocoaPodsTest’, ‘Second’
platform :ios
pod ‘Reachability’, ‘~> 3.0.0’
pod ‘SBJson’, ‘~> 4.0.0’
platform :ios, ‘7.0’
pod ‘AFNetworking’, ‘~> 2.0’
2
不同的target使用完全不同的Pods依赖库
CocoaPodsTest这个target使用的是Reachability、SBJson、AFNetworking三个依赖库,但Second这个target只需要使用OpenUDID这一个依赖库,这时可以使用target关键字,Podfile的描述方式如下:
target :’CocoaPodsTest’ do
platform :ios
pod ‘Reachability’, ‘~> 3.0.0’
pod ‘SBJson’, ‘~> 4.0.0’
platform :ios, ‘7.0’
pod ‘AFNetworking’, ‘~> 2.0′
end
target :’Second’ do
pod ‘OpenUDID’, ‘~> 1.0.0’
end
以do/end 开始和结尾
5、Podfile中指定类库版本的含义
pod ‘AFNetworking’ //不显式指定依赖库版本,表示每次都获取最新版本
pod ‘AFNetworking’, ‘2.0’ //只使用2.0版本
pod ‘AFNetworking’, ‘> 2.0’ //使用高于2.0的版本
pod ‘AFNetworking’, ‘>= 2.0’ //使用大于或等于2.0的版本
pod ‘AFNetworking’, ‘< 2.0’ //使用小于2.0的版本
pod ‘AFNetworking’, ‘<= 2.0’ //使用小于或等于2.0的版本
pod ‘AFNetworking’, ‘~> 0.1.2’ //使用大于等于0.1.2但小于0.2的版本
pod ‘AFNetworking’, ‘~>0.1’ //使用大于等于0.1但小于1.0的版本
pod ‘AFNetworking’, ‘~>0’ //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
cocoapods升级
错误处理:
当你执行 sudo gem update --system
命令的时候可能会报错
这时候需要你 先安装homebrew,去官网复制命令:http://brew.sh
然后执行命令 brew install ruby
安装成功后重新执行cocoapods安装命令
参考:
1
http://www.exiatian.com/cocoapods安装使用及配置私有库/
2
http://www.cnblogs.com/brycezhang/p/3675670.html
3
http://mp.weixin.qq.com/s?__biz=MzIzMzA4NjA5Mw==&mid=214023058&idx=1&sn=02fcf03d8ceb6636489086ba3fc310cc&scene=18#rd