CocoaPods简介
CocoaPods是一个用来管理第三方库的比较好用的管理工具。iOS开发来讲,是不可缺少需要掌握的工具。
本文主要讲解如何利用好CocoaPods来管理项目。为了演示使用,我首先创建一个测试工程,工程名称为
testPods
,工程结构如下:
1. 简单使用CocoaPods
1.1 初始化Podfile
在Terminal中,先进入工程根目录下,然后进行Podfile的初始化。
pod init
初始化Podfile.
初始化后内容如下:
1.2 搜索第三方库(以SDWebImage为例)
pod search SDWebImage
1.3 编辑Podfile
Podfile中复制pod 'SDWebImage', '~> 3.8.1'
,并设置需要的版本,如果不写版本默认为最高版本。
1.4 安装
pod install
安装Podfile中的第三方库。
安装后,有个感叹号,提示现在开始使用
testPods.xcworkspace
。我们进入工程根目录底下,已经有testPods.xcworkspace
工作空间了。打开workspace后工程目录结构如下:
1.5 使用SDWebImage,我们以
UIImageView+WebCache
下载图片为例。代码如下:
#import "ViewController.h"
#import "UIImageView+WebCache.h"
#define kImageAddrUrlStr @"http://love.doghouse.com.tw/image/wallpaper/011102/bf1554.jpg"
@interface ViewController ()
@property (nonatomic, strong) UIImageView *imageView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self initImageView];
}
- (void)initImageView {
_imageView = [[UIImageView alloc] init];
_imageView.frame = [UIScreen mainScreen].bounds;
_imageView.contentMode = UIViewContentModeScaleAspectFit;
[self.view addSubview:_imageView];
}
//点击屏幕时,开始下载
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
[self.imageView sd_setImageWithURL:[NSURL URLWithString:kImageAddrUrlStr]];
}
运行程序测试时,如有提示如下请设置工程的配置:
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
配置方法:在工程Info.plist中增加如下信息。
1.6 运行结果OK.
2. 修改第三方库的需求时使用CocoaPods
有些时候,第三方库不能完全满足我们需求时,需要修改该第三方库了。这种情况下,我们也可以使用CocoaPods管理。完整下载第三方库,并上传到自己的远端仓库里。可以这样理解,仓库的master是完整的第三方库,我们创建一个分支,当做pod的远程仓库。
如何使用Git需要了解,请查阅git 介绍和使用。
2.1 下载完整的第三方库
下载后进入根目录下,查看git status
,并创建分支MySDWebImage
。
git checkout -b MySDWebImage
2.2 创建自己的远端仓库
我使用的是gitlab,以gitlab远程仓库为例,我创建的远端仓库地址为git@gitlab.com:zhang.wenhai/SDWebImage.git
,并设置分支MySDWebImage
的远端仓库地址。
git remote add MySDWebImage git@gitlab.com:zhang.wenhai/SDWebImage.git
2.3 上传到自己远端仓库中
git push MySDWebImage MySDWebImage
在我的仓库中可以看见一个MySDWebImage
的分支了。
2.4 修改Podfile的下载地址
pod 'SDWebImage', :git=>'git@gitlab.com:zhang.wenhai/SDWebImage.git', :branch=>'MySDWebImage'
这样就从我们自己的库中下载SDWebImage了。
2.5 如果需要修改需求的话,修改后
push
到自己的分支上,再进行pod install
即可。
3. 创建自己的库,使用CocoaPods管理
3.1 创建自己的库工程,我自己创建的framework工程如下,提供了一个方法
- (void)doIt;
3.2 上传到远端仓库中,不做讲解,可以查阅git 介绍和使用。
3.2 初始化创建podspec文件
pod spec create WHClass
创建podspec模板。
3.3 配置podspec文件
s.source_files = "WHClass", "WHClass/**/*.{h,m}"
指定共享文件
s.source = { :git => "https://gitlab.com/zhang.wenhai/WHClass.git"}
远端仓库地址
s.license = ""
license可以空
检查podspec配置
pod spec lint WHClass.podspec
直到没有错误为止,可以有警告。
3.3
git push
podspec到远端仓库中。
3.4 使用CocoaPods安装
修改Podfile文件,与2.4类似。
pod 'WHClass', :git=>'git@gitlab.com:zhang.wenhai/WHClass.git'
进行
pod install
安装即可。