CocoaPods的安装和使用
一、 CocoaPods简介
CocoaPods是一个用来帮助我们管理第三方依赖库的工具。
在开发iOS应用时,会经常使用第三方类库,比如SDWebImage、AFNetworking等等,手动的下载与添加类库非常麻烦,通过CocoaPods可以便捷的下载与管理第三方类库。
使用CocoaPods的目的是让我们能自动化的、集中的、直观的管理第三方开源库。
官方链接:https://cocoapods.org
二、CocoaPods安装
CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环 境,OS X系统默认支持Ruby运行,但是Ruby的默认源使用的是rubygems.org,国内访问这个网址时,如果无法FQ,则不能下载,解决方案是将其替 换成可用的Ruby,比如淘宝,替换方式如下:
1、查看自己电脑的Ruby环境 --- 终端命令:【gem sources -l】
- 如果显示当前镜像是https://ruby.taobao.org/,则直接安装CocoaPods。
- 如果显示当前镜像是https://rubygems.org/,则需要将当前 的镜像移除,终端命令:【gem sources --remove https://rubygems.org/】,移除成功后终端显示 https://rubygems.org/ removed from sources。紧接着需要下载taobao的镜像,终端命令:【gem sources -a https://ruby.taobao.org/】。
2、安装CocoaPods
2.1、终端命令:【sudo gem install cocoapods】,需要输入当前用户开机密码,输入时不会显示密码也不会显示*号,输入完成回车就可以了;如果显示try again那说明密码输入错误,需要重新输入密码。输入完密码之后等待。
2.2、设置 --- 终端命令:【pod setup】速度很慢,需要等待,如果出现warning,需要重新执行这一步骤。设置结束时终端会显示绿色的Setup completed。如果想要查看CocoaPods的设置进度,需要重新开一个终端窗口,进入CocoaPods:终端命令:【cd ~/.cocoapods】,查看进度:终端命令:【du -sh *】。
3、使用CocoaPods
3.1、创建工程,然后关闭工程,终端进入工程:终端命令:【cd 工程路径(直接拖文件夹到终端)】
3.2、先找到要使用的三方库:终端命令:【pod search 第三方库名称】
3.3、会显示列表页面,选择三方库最新版本的命令,复制备用,例如复制:【pod 'MBProgressHUD', '~> 0.9.2'】然后输入wq退出
3.4、编辑工程的Podfile文件:终端命令:【vim Podfile】进入Vi编辑
3.5、按 i 键使Vi编辑处于编辑状态,然后 输入:
【platform :ios, '8.0'
target "targetName" do
pod 'MBProgressHUD', '~> 0.9.2'
end】
(将targetName替换成工程名,pod 'MBProgressHUD', '~> 0.9.2' 替换成3.3步复制出来的命令,所有符号都是英文状态下的)
此时不需要回车,直接按Esc键,结束编辑状态,按 : 然后输入wq回车,保存修改并退出
3.6、 保存Podfile的设置,然后进行更新下载三方库:终端命令:【pod update】或【pod install --verbose --no-repo-update】或【pod update --verbose --no-repo-update】(后两者较快),如果此时报错,需要检查你上一步输入是否有误
3.7、如果以后还想要添加新的第三方到CocoaPods中,只需要终端进入工程:终端命令:【cd + 工程路径(直接拖文件夹到终端)】,然后重复3.2~3.6步即可,但是重复3.5步时需要注意不要删除以前的语句,只需要在后面添加新的三方库版本信息即可,例如:【pod 'AFNetworking', '~> 3.1.0'】
4、在工程中使用CocoaPods
设置好CocoaPods的工程文件夹中有这些文件
普通工程打开的是.xcodeproj文件,而设置了CocoaPods的工程要打开.xcworkspace文件,否则会报错。
打开工程后,所有第三方类库都由CocoaPods管理,在Pods文件夹下
测试:
1 #import "ViewController.h"
2 #import <MBProgressHUD.h>
3
4 @interface ViewController ()
5
6 @end
7
8 @implementation ViewController
9
10 - (void)viewDidLoad {
11 [super viewDidLoad];
12
13 [MBProgressHUD showHUDAddedTo:self.view animated:YES];
14 }
15
16 @end
执行效果: