公司做的是教育相关的项目,项目都是从其中一个最早的项目切出来的,项目间很相似,只是根据客户需求开放不同的模块给用户使用。各项目代码都是从最早的项目简单copy过来的,这就造成了很多问题:
1.明明是相同代码,出现bug 的时候需要在各个项目的代码中分别进行相同的修改,很麻烦。
2.项目太多了,很容易搞得繁杂,协同开发时,有时候出了小问题进行了简单修改没有同步到别的项目上,就造成了,改过的问题在别的项目又出现一次。
深受其害的情况下,有一个强烈的愿望,就是代码在最初始的项目上进行一次修改,别的项目只需要简单的同步一下,就可以了。
其实我们的项目想法上还是有做简单的 “模块化” 的,各个模块的代码都是简单的放在同一个文件夹中,之前copy的时候就是如果项目需要这个模块,就把这个模块的代码copy过来,在模块列表的入口处进入这个模块。但是这样不能够实现一次修改,各项目OK的目的。
基于以上,我的想法就是把我们项目里的各个模块都放在私有库中,出现新项目的时候,模块的东西通过cocoaPod进行安装,之后如果出现bug,我只需要修改私有库的代码,在各项目 pod update一下,就能实现bug的修改。
查阅资料后,发现可以通过cocoapods创建私有库的方式实现这样的目的。具体做法是吧初始项目里的所有独立的模块放在私有库中,再有新的项目需要用到这些模块的时候,通过cocoapod安装私有库,之后如果模块中有bug修改,只需在私有库中进行修改,在用到此模块的项目中pod update更新即可。
如何创建私有库可以通过此教程进行创建,我大概总结了一下创建过程中需要注意的点
1.通过 http://www.jianshu.com/p/a73b6bfdb41a 提供的教程吧自己的私有库放到cocoa pod进行管理
私有库创建的大概步骤:
1.远端创建一个spec repo ,添加到本地来,本地~cocoapod/repo可以查看
2.远端创建一个存放库代码的仓库
3.在本地用pod lib create 命令创建一个包含Example的私有库项目,这样会自动生成 [库名].podspec文件
4.修改代码(放进去你自己想要放的代码)—我是把项目中的学习这个模块放进去了,但是模块的耦合度太高,写的很烂,导致放弃了这个模块的很多代码—(后期思考—写代码一定要降低耦合性 —>代码应该如何架构 —>commonTool commonTool 三方库文件 资源文件 应该如何管理这些模块)
5.修改[库 名].podspec文件 ,,修改应该修改的内容,version/summary/desc/source/sourceFile/public_header_files等
6.验证:包括 验证pod spec文件语法是否正确->库里面的代码是否报错/是否有警告->有警告的时候可以在验证的时候添加 pod lib lint—allow-warnigns进行验证,有警告也可通过验证
7.验证通过后就可以进行提交了提交也分两部分
一部分是库里面代码的提交 — git add gitcommit git remote…… gitpush—tag///记得打tag,提交tag ,tag里的版本要和.podslec里面一致(建议每次修改库代码后,及时更新pod spec文件里面的version)
网友评论