随着我们公司的业务的扩展,项目不断增加,由原来的学生端增加至家长端,老师端等项目组。可复用代码的需求越来越大,同时组件化管理等标准流程也开始正式应用起来了。目前组件化管理用的比较多的就是Cocoapods,将项目中底层的上课音视频层从项目代码中抽离出来,组装成SDK,供其他业务端调用。本篇博客是我在探索制作私有库制作过程中的一些心得记录,仅供参考。
一.创建私有Spec Repo
1.Spec Repo类似一个容器,里面装有所有公开的Pods,当使用Cocoapods后,他就会被clone到本地的~/.cocoapods/repos目录下。终端执行以下命令查看:
pod repo
2.我是在Coding上创建的仓库,因为在GitHub上面创建私有库是收费的,所以选择了免费的git服务。在Coding上创建远程私有索引库,用了存放.podspec文件:
3.创建本地的私有索引库文件夹,并与远程的私有索引库进行关联
pod repo add 本地文件名 sourceURL (上一步建好的远程仓库)
之后再查看repos目录:已经多了一个我们添加的ZMTestSpec文件夹
二.创建一个用了存放项目组件的仓库
1.在一个合适的目录下创建工程模板
pod lib create ZMCommonBackButton
2.以上信息配置好之后,会自动打开之前创建的测试工程,在工程目录下,我们要替换掉之前的ReplaceMe.m文件
3.替换完成之后,重新回到Example路径下,重新执行pod install操作
4.将能够运行的测试代码工程提交的远端代码管理仓库
此处有冲突,要解决冲突重新提交
5.编辑模板工程的.podspec文件
6.验证.podspec
7.将podspec文件提交到本地的私有索引库
pod repo push ZMTestSpec ZMCommonBackButton.podspec --allow-warnings
8.提交成功的话,就可以用pod search ZMCommonBackButton查看自己的库了
9.可以在Demo项目里面引用我们的私有库测试一下
OK,此时大功告成了。
三.总结
测试的过程中,还是遇到了一些坑的,参考了一些博客,帮我梳理了整个流程。
1.关于spec repository 和code repository
中间有个过程是验证spec的,老是出错。最后发现是把spec文件和代码放在同一个git仓库里面了。 code repository:代码仓库。我们把包代码上传到这个仓库里。 spec repository:配置仓库。所有的配置按照包名、版本号分门别类的存放在这个仓库。注意: 这个仓库只用来存放spec文件,不存放代码。
2.提交代码工程的时候出错
此时一定要看清出错在哪里,有冲突解决冲突,然后在重新提交。不要盲目去解决问题。
3.关于编辑.podspec文件
s.source_files的文件路径一定要对比下你的工程项目目录,不然一直报错。