从去年的Dev大会上就开始慢慢接触了解组件化,但是没有实际的项目可以操作,搁浅至今,中间也尝试性的试验过,现在来一个总结。
1、思考
抽取项目中独立的代码,作为模块与整体项目分开。首先我能想到的网络库、工具类、封装好的一些控件,涉及业务的由于业务有一定的关联性,暂时不做考虑。
2、抽取代码
这里是以项目中的Category为目标,抽取Category为独立模块,供多项目使用,由于第一次是以测试为主,暂且抽取了几个UIKit的Category,如下:
#import "UIColor+KSString.h"
#import "UIImage+KSColor.h"
#import "UITableView+NH.h"
#import "UITableViewCell+ext.h"
#import "UIView+NH.h"
github地址:https://github.com/shijinliang/CWCategory
3、建立独立项目
把上面代码抽取出来之后建立一个独立的项目,为接下来创建pod使用。
4、创建pod
- 首先使用你的邮箱创建一个账号,这个是和电脑绑定的,使用如下命令:
pod trunk register sjl_leaf@163.com 'xiaoshi' --description='MBP'
- 然后在你的邮箱里会收到一封邮件,点击邮件中的链接,电脑和账号绑定。
- 然后你可以使用 pod trunk me 来查看自己的账号信息,
- 这个账号是没有密码的,只是保存了电脑的token。
- 你的pod是可以添加协作者的,如添加kamy_shi@163.com 到Test这个库里面
pod trunk add-owner Test kamy_shi@163.com
有了账号之后,我们开始创建pod工程,在项目根目录下输入这个命令:
pod lib create [pod name]
会创建一个项目工程,然后可以根据自己的一些信息修改podspec里面的信息。(以下暂且以test作为pod name使用)
然后使用 pod spec lint test.podspec
来检验信息有没有问题。最后的命令行结果是test.podspec passed validation.
则代表OK。
5、提交代码、提交pod
接下来你需要提交代码并添加tag,
git add *
git commit -m "update 0.0.1"
git tag '0.0.1'//这个版本号是自己定的,和test.podspec文件中对应上就可以
git push --tags
pod trunk push test.podspec
提交完之后就需要等待了,按照官网的说法是提交之后15分钟之后才能查到自己的pod,本地的可能需要更新本地的cocoapods数据,你可以提交之后在官网 https://cocoapods.org/ 搜索。
注:由于pod提交后,会有一个质量指标,前期自己的pod通过pod search 命令
可能不容易被搜到。关于质量指标的问题可以查看官网的说法 cocoaPods质量指标:https://guides.cocoapods.org/making/quality-indexes
有问题欢迎一起沟通,指正。成长的道路需要你们陪伴
探索,是发现问题的第一步,是经验积累的第一步。 成长需要探索!