导语
Cocoapods是iOS开发中一款优秀的包管理工具,Cocoapods背后的原理是什么呢?如何制作出属于自己的私有库?如何制作属于自己的公有库呢?
Cocoapods原理
关于具体的原理,可以参考Objc上的这篇文章:http://objccn.io/issue-6-4/
别人的pods公有库是如何制作的
我们以 AFNetworking 为例,执行 pod search ‘AFNetworking’
按照我的理解 pods大概做了这些工作:
去 /.cocoapods/repos/master/Specs 文件夹下,查询 AFNetworking,找到AFNetworking.podspec.json文件
读取 AFNetworking.podspec.json 文件 将该资源的版本号,下载路径,库简介等信息
呈现到终端中,就是我们上面看到的 pod search ‘AFNetworking 搜索的结果。
反过来理解,就是 一个支持pods公有库所需条件
1、首先使用pods管理项目
2、创建并编辑 xxx.podspec 文件
3、将这个xxx.podspec 推送到pods的git仓库中
4、每次执行 pod install 或者 pod update(pods会自动远程的podspec文件,下载到本机 ~/.cocoapods目录下)
5、执行 pod search ‘自己的库’就能看到自己的库出现在终端搜索结果中
如何制作出属于自己的公有库?
准备工作:
1、准备自己的项目工程(包含 一个本地工程 ,远程对应的git仓库, 核心代码添加到 Classes 文件中)
2、将本地的框架工程推送到远程git仓库
注 关于git的操作,不是本文的重点。这里不做太多的介绍 如果有需要,请关注我随后的文章将会介绍一些git的操作。
3、保证cocoapods 0.33版本以上 (兼容pod trunk)
4、pod trunk me 查看邮箱 ,记录自己的邮箱和名字,后续需要用到
正式工作:
1、 为项目工程打tag
pods管理下的库,版本是根据git的tag来区分的,所以我们创建好工程之后需要为我们的仓库打一个tag,并且推送到远程仓库
git tag 0.01 ##为git打tag
git push –tags ##将tag推送到远程仓库
2、工程中添加podspec (一定要 cd 到当前工程路径,在添加 podspec)
最终项目工程结构如下:
3、编写podspec文件(直接贴编辑后的文件内容)
注意:
1. s.version应和tag的版本一致.
2.将源代码放置在固定的文件夹下,同时修改s.source
4、验证podspec文件
5、推送podspec文件 到pods的specs
首先push修改后的podspec文件到本地工程的git远程仓库
git add .
git commit -m “”
git pull
git push
接着推到pods的specs(推到pods的specs之前先注册一下)
pod trunk register 替换成自己的github邮箱 “替换成自己的github用户名” –description=’macbook pro’
查看邮箱,复制链接到浏览器打开,激活pods的specs给你的权限
最后我们把项目spec 推送到pods的specs
pod trunk push ZYYUIKitBeta.podspec
7、更新本地的pods文件夹
如果要使用,需要先更新本地的pods仓库
pod repo update
等待。。。 最终结果
执行 pod search ZYYUIKitBeta,自此大功告成。
iOS技术交流群 QQ:553633494