iOS进阶之路我爱编程

使用CocoaPods打造 --- 第三方库

2018-04-16  本文已影响167人  _Joeyoung_

如果对 Cocoapods 不是很了解的同鞋,可以 查看官方文档

CocoaPods工作原理

开始之前先简单大致介绍下 CocoaPods 工作原理吧。
我画的神图:

CocoaPods工作原理图

原理分析:

提到安装指令这里补充下:

当执行 pod install / pod update 指令时,会触发cocoaPods更新本地Spec仓库。需要更新整个仓库,从检查到具体的更新,速度自然快不了。
可执行下面的指令解决:

// --verbose:查看详细的执行日志
// --no-repo-update : 告诉pod不用检测和更新本地spec仓库
$ pod install --verbose --no-repo-update 
$ pod update --verbose --no-repo-update 

pod installpod update 的区别:

打造远程第三方库:

(1):新建远端仓库,存放我们的第三方库源码。

a). 新建仓库,这里我使用的是gitHub仓库,仓库的名称最好和我们第三方库的名称一致,这样便于别人在GitHub上搜索。

b). clone仓库到本地,新建框架文件夹,放入我们的源码。

在clone下来的文件夹中,创建QYTimer文件夹,放入源码

c). 将源代码push推到远端仓库。

d). 为项目打上tag(因为.podspec文件中的s.source需要用到tag来区分版本),将tag推到远端仓库。
对tag不熟的可以 查看git官网

// 打上标签
$ git tag 0.0.1
// 查看标签
$ git tag 
// 将标签同步到远端仓库
$ git push origin --tags
远端仓库 tag

(2):在源代码同级文件夹中,:创建.podspec描述文件。

a). 创建.podspec 文件。

// QYTimer 为.podspec文件的名字
$ pod spec create QYTimer
成功创建.podspec 文件 在文件夹中如下: .podsepc文件要和存放源码的文件同级
b). 编辑.podspec 文件。
对该文件内的属性不是很了解的可以看 ->戳这里,毕竟官方才是最权威的。
Pod::Spec.new do |s|

  # 库的名字
  s.name         = "QYTimer"
  # 版本号
  s.version      = "0.0.1"
  # 摘要(长度要小于下面的描述)
  s.summary      = "QYTimer Class."
  # 描述 
  s.description  = "a Class of solve the retainCycle."
  # 主页(这里采用该库的gitHub主页)
  s.homepage     = "https://github.com/qiaoyoung/QYTimer"
  # 许可证
  s.license      = "MIT"
  # 作者信息
  s.author       = { "填写你的名字" => "填写你的邮箱" }
  # 源码地址(这里使用gitHub仓库地址)
  s.source       = { :git => "https://github.com/qiaoyoung/QYTimer.git", :tag => "#{s.version}" }
  # 需要安装的源码
  s.source_files = "QYTimer", "QYTimer/**/*.{h,m}"

end

(3):文件校验。

a). 先本地校验 .podspec 文件。

$ pod lib lint

校验之后发现有好多警告,根据提示可以使用 --allow-warnings 忽略警告。

$ pod lib lint --allow-warnings 
本地校验通过,其他信息可暂时忽略

b). 远程校验 .podspec 文件。

$ pod spec lint

同本地验证一样,出现警告使用 --allow-warnings 忽略。

$ pod spec lint --allow-warnings 
远端校验通过

(4):注册trunk,上传 .podspec文件到CocoaPods官方远程索引库。

a). 在命令行输入下列指令,然后会收到一封带有验证了链接的邮件。

// 邮箱名:必须真实,需要验证
// --verbose:查看详细的执行日志
$ pod trunk register 邮箱名 '用户名' --verbose

点击邮件链接确认。然后可以执行该指令查看注册信息:

$ pod trunk me 

b). 上传 .podspec文件到远程索引库。
$ pod trunk push QYTimer.podspec

上传验证的时候如果报警告的错误,可以根据提示使用 --allow-warnings 忽略。

$ pod trunk push QYTimer.podspec --allow-warnings
上传成功

我们可以在CococaPods的远程仓库中看到我们刚才上传的 .podspec文件。

https://github.com/CocoaPods/Specs/tree/master/Specs
此时我们的库已经发布成功啦!

(5):项目中使用我们的第三方库。

a). 搜索我们刚才发布的第三方库。

$ pod search QYTimer

然而并没有搜到,因为我们的第三方库发布到了CocoaPods远端索引库,而我们的本地索引库并没有更新。

// 更新本地索引库
$ pod setup 
// 删除旧的检索索引文件
$ rm ~/Library/Caches/CocoaPods/search_index.json

再次搜索:

$ pod search QYTimer

b). 将搜索到的第三方库复制到我们的 Podfile 文件中,更新我们的pod库。

$ pod install 

c). 在需要使用的类中引入我们的第三方库。

#import "ViewController.h"
#import "NSTimer+QYBlockSupport.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    [NSTimer qy_scheduledTimerWithTimeInterval:1 repeats:YES block:^{
        NSLog(@"test~");
    }];
    
}

到此就完成了!

第三方库地址 ->戳这里


通过上面的步骤,一步步手动创建了自己的第三方库,是否觉得有点麻烦呢?(我是感觉挺繁琐的)

这里有个自动创建的方式推荐给大家,作者阐述的非常详细,可以 ->戳这里查看原文


千里执行,始于足下。

上一篇 下一篇

猜你喜欢

热点阅读