你真的会用 CocoaPods 吗?

来源:互联网 发布:电缆设备负荷计算软件 编辑:程序博客网 时间:2024/05/17 04:14

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 afnCreating 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  
原创粉丝点击