你真的会用 CocoaPods 吗?
来源:互联网 发布:电缆设备负荷计算软件 编辑:程序博客网 时间:2024/05/17 04:14
CocoaPods 可以说是 iOS 开发应用最广泛的包管理工具,本篇文章主要介绍 CocoaPods 的第三方库是怎样从网络集成到我们本地的项目当中,也是制作私有库、开源库和 iOS 项目组件化的一个知识铺垫。
让我们从一张图片开始:
远程索引库
远程索引库里存放的是各种框架的描述信息,这个库托管在 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 库相信应该不会太难了,大致分为以下几步:
- 托管框架源码到 Git;
- 创建框架描述信息;
- 上传框架描述信息到
https://github.com/CocoaPods/Specs
; - 命令行
pod setup
, 创建本地索引库; - 命令行
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
- 你真的会用 CocoaPods 吗?
- 你真的会用GOOGLE吗
- 你真的会用 const 吗?
- 你真的会用搜索引擎吗?
- 你真的会用ListView吗?
- 你真的会用StringBuffer吗?
- 你真的会用OneNote吗?
- 你真的会用Google搜索引擎吗
- 你真的会用Google搜索引擎吗
- 你真的会用Google搜索引擎吗
- 你真的会用Google搜索引擎吗(二)
- UpdatePanel控件,你真的会用了吗?
- NSTimer你真的会用了吗
- NSTimer你真的会用了吗
- NSTimer你真的会用了吗
- NSTimer你真的会用了吗
- Eclipse快捷键,你真的会用了吗?
- NSTimer你真的会用了吗!!!
- 新零售的八大发展趋势及五新特点
- 微信公众号支付总结
- Mysql在linux上使用
- 数据结构与算法分析c++版本学习总结
- 集合扩容
- 你真的会用 CocoaPods 吗?
- Servlet知识总结
- LeetCode20. Valid Parentheses
- okhttp+banner实现自动轮播图
- TCP/IP
- MUI 页面切换时等待动画怎么设置?
- 导航页下拉菜单
- 【论文笔记】Margin Sample Mining Loss: A Deep Learning Based Method for Person Re-identification
- bzoj 1061 [Noi2008]志愿者招募 单纯形算法