利用Cocoapods,在团队中高效开发

Posted 江城小札

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Cocoapods,在团队中高效开发相关的知识,希望对你有一定的参考价值。

一、前言

这两天偶然想起半年前一个面试官的问题:当前有5个人开发人员,10个项目,10个项目中60%的部分是通用的,作为一个团队开发leader,如何做能保证所有项目有序高效进行?

当时的回答大概是:应用大致粗分为基础模块(如网络通信、第三方分享、数据库管理...),功能模块(推送、地图、支付、日志统计...),业务模块;先开发基础模块、功能模块,不同的开发人员负责对应的模块,减少耦合。

但是在回答如何把模块串起来的处理方式上,却做的比较死板~~~把所有不同模块代码拷到对应的项目中;当然当时面试官也没有给出他的回答,过后这个问题的最优处理方案就没仔细去想,问题也一直丢在了某个明显的角落里。

这种做法会至少带来3个问题:

1、拷贝文件的做法,工作量大;

2、模块修改的权限不受到限制

3、容错率低;

如此多的项目中,同步代码工作量剧增,容易造成遗漏,很容易出错;而且不同的人都有权限修改模块,肯定不是希望看到的,如此一来维护成本很大。

既然有这么多缺点,有没有方案能够去解决这些可能出现的问题,答案是肯定的---Cocoapods,这是Code Manage的神器,由于这两天在制作库时,坑太多,以防以后扑坑没有梯子,也就成了这篇文章的由来。

Cocoapods结构如图1.0

图1.0   图片资源由官网blog(https://blog.cocoapods.org/)提供



二、使用Cocoapods,制作私有库以及公有库过程

1、进入目标目录,利用终端执行指令pod lib create xxx, xxx为库的名字,如图1.0,依次操作,直至目标目录生成相应的文件,如图1.1

利用Cocoapods,在团队中高效开发

图1.0

利用Cocoapods,在团队中高效开发

图1.1


2、修改xxx.podspec 调整库的相关个人信息,如下图2.0

利用Cocoapods,在团队中高效开发

图2.0


3、编辑xxx.podspec完成后,cd至该文件所在目录,执行检查指令

podlib lint --allow-warnings,"--allow-warnings"为忽略警告作用,出现xxx passed validation则表示:podspec文件编辑以及所需要制作库文件相关的code不存在问题,如图3.0、3.1

利用Cocoapods,在团队中高效开发

图3.0

利用Cocoapods,在团队中高效开发

图3.1


4、Git关联本地与远端的source,过程如图4.0

bgit remote -v,检查是否关联成功

cgit push -u origin master同步代码至远端;

d、若同步失败,则需要先拉取远端代码,执行git pull origin master;

e、若拉取失败,执行gitpull origin master --allow-unrelated-histories,若产生冲突,修复(gitmergetool,终端修复指令)conflict即可;

f、执行git pull --rebase origin master,将远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败);


利用Cocoapods,在团队中高效开发

图4.0

5、打上tag,并同步tag

a、打tag: git tag -a 0.1.0 -m “0.1.0版本" (注意:标签版本需要跟.podspec配置文件中的版本一致)

b、同步tag:git push origin 0.1.0


6、同步tag成功后,执行pod spec lintXXX.podspec ,进行验证;如过程中出现错误或是警告,依次执行,直至不报错误

podspec lint XXX.podspec --allow-warnings

podspec lint XXX.podspec --use-libraries

podspec lint XXX.podspec --allow-warnings --use-libraries


7、制作私有库需要的一个环节:本地生成repo,执行


8、向远端库提交.podspecpodrepo push XXX XXX.podspec --allow-warnings,如下图8.0、图8.1

利用Cocoapods,在团队中高效开发

图8.0

利用Cocoapods,在团队中高效开发

图8.1

出现上述截图,即表示提交成功;


9、制作公有库,需要trunk,执行pod trunk push XXX.podspec ,若出现图9.0,则表示需要注册一个session

利用Cocoapods,在团队中高效开发

图9.0


10、注册session:pod trunk register xxx@xxx.com ‘xxx’,xxx分别为注册的邮箱以及库的名字,邮箱会收到一封验证邮件,点击验证链接即可


11、验证成功后,返回终端执行pod trunk me,可看到注册的一些信息


12、执行pod trunk push同步trunk,若出现12.0,则同步成功

图12.0

13、执行pod search xx,若搜索得到,即表示制作完成;但是搜索得到那是不可能的;

原因:search会在~/Library/Caches/CocoaPods目录下的已生成的search_index.json文件中检索,若该文件没有制作的库的记录;

解决方案:

a、直接删掉该文件,rm~/Library/Caches/CocoaPods/search_index.json

b、再执行pod search xxx(库名字),则会同步最新的json文件,并得到库的搜索结果,如图13.0,制作完成

图13.0


然后,就阔以跟小伙伴一起快乐的Coding了;



能够看到这里的朋友,不是真爱,就是被坑多了,Ths 

以上是关于利用Cocoapods,在团队中高效开发的主要内容,如果未能解决你的问题,请参考以下文章

高效率的APP开发团队是这样工作的

高效成熟的微信牛牛平台搭建软件开发流程和团队

PPTVue.js 团队成员蒋豪群:Vue 高效开发之路

如何高效填写软件缺陷报告---打卡第七天

Devops运维沙龙报名开始:企业如何基于日志实现大规模集群的高效开发运维

如何实施弹性CI/CD?你的高效DevOps团队构建指南