你真的会用 CocoaPods 吗?

CocoaPods 可以说是 iOS 开发应用最广泛的包管理工具,本篇文章主要介绍 CocoaPods 的第三方库是怎样从网络集成到我们本地的项目当中,也是制作私有库、开源库和 iOS 项目组件化的一个知识铺垫。

让我们从一张图片开始:

CocoaPods 工作流程
未命名文件未命名文件

远程索引库

远程索引库里存放的是各种框架的描述信息,这个库托管在 Github 上,地址如下:

github.com/CocoaPods/S…

每个框架下有数个版本,每个版本有一个 json 格式的描述信息,如下:

{
  "name": "CAIStatusBar",
  "version": "0.0.1",
  "summary": "A simple indicator",
  "homepage": "https://github.com/apple5566/CAIStatusBar.git",
  "license": "MIT",
  "authors": {
    "apple5566": "zaijiank110@sohu.com"
  },
  "platforms": {
    "ios": "6.0"
  },
  "source": {
    "git": "https://github.com/apple5566/CAIStatusBar.git",
    "tag": "0.0.1"
  },
  "source_files": "CAIStatusBar/**/*.{h,m}",
  "resources": "CAIStatusBar/CAIStatusBar.bundle",
  "requires_arc": true
}

其中 git 字段表示该框架的托管地址,也就是上面时序图中的 远程框架库

本地索引库

在 install cocoapods 命令后,需要执行 pod setup 这个命令,pod setup 命令就是将远程索引库克隆到本地来,本地索引库的路径如下:

~/.cocoapods/repos/master

本地索引库和远程索引库的目录一致,结构如下:

本地索引库
本地索引库本地索引库

本地索引文件

当执行 pod search 命令时,如果本地索引文件不存在,会创建这个文件。

tianziyaodeMacBook-Air:~ Tian$ pod search afn
Creating search index for spec repo 'master'..

如果这个文件存在,则会在此文件中进行索引,确认所需要的框架是否存在,本地索引文件的路径如下:

~/资源库/Caches/CocoaPods

制作 CocoaPods 库

上面的流程清楚以后,制作 CocoaPods 库相信应该不会太难了,大致分为以下几步:

  1. 托管框架源码到 Git;
  2. 创建框架描述信息;
  3. 上传框架描述信息到 https://github.com/CocoaPods/Specs
  4. 命令行 pod setup , 创建本地索引库;
  5. 命令行 pod install ,将框架集成到项目中;

现在开始动手吧!首先在桌面新建一个 testLib 目录,在该目录下新建一个 Classes 目录,用来存放框架源码,然后将 testLib 托管到 Git。

你可以给 Classes 目录任意的命名,Classes 只是一种约定俗称的命名。

pod spec

pod spec 命令用于创建框架的描述信息文件,文档如下:

guides.cocoapods.org/syntax/pods…

现在在 testLib 目录下执行:

pod spec create testLib

目录下会创建一个 testLib.podspec 文件,然后编辑这个文件,主要有以下几个字段:

  • version:这个 spec 映射的版本,保证 Git 的 releases 与此对应;
  • homepage:项目主页;
  • source:框架源代码的托管地址;
  • tag:与 version 对应;
  • source_files:框架源代码的目录、文件、文件类型等规则;

CocoaPods 公开库

根据上面的步骤,现在你需要将生成的 testLib.podspec 文件上传到远程索引库,在此之前,你需要注册一个 Trunk 账号,文档如下:

guides.cocoapods.org/making/gett…

现在执行下面的命令,记得修改邮箱昵称描述等:

pod trunk register ziyao.tian@gmail.com 'Tian' --description='macbook air'

你的邮箱会收到一封邮件,打开邮件里面的链接,会有类似 you can back termainal 的提示,现在回到终端。

pod lib lint

检查 testLib.podspec 的合法性,根据错误提示修复问题,当显示 passed validation 后,执行下面的命令:

pod trunk push testLib.podspec

提示信息如下:

Updating spec repo `master`

--------------------------------------------------------------------------------
 ��  Congrats

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值