利用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
图1.0
图1.1
2、修改xxx.podspec 调整库的相关个人信息,如下图2.0
图2.0
3、编辑xxx.podspec完成后,cd至该文件所在目录,执行检查指令
podlib lint --allow-warnings,"--allow-warnings"为忽略警告作用,出现xxx passed validation则表示:podspec文件编辑以及所需要制作库文件相关的code不存在问题,如图3.0、3.1
图3.0
图3.1
4、Git关联本地与远端的source,过程如图4.0
b、git remote -v,检查是否关联成功
c、git push -u origin master同步代码至远端;
d、若同步失败,则需要先拉取远端代码,执行git pull origin master;
e、若拉取失败,执行gitpull origin master --allow-unrelated-histories,若产生冲突,修复(gitmergetool,终端修复指令)conflict即可;
f、执行git pull --rebase origin master,将远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败);
图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、向远端库提交.podspec,podrepo push XXX XXX.podspec --allow-warnings,如下图8.0、图8.1
图8.0
图8.1
出现上述截图,即表示提交成功;
9、制作公有库,需要trunk,执行pod trunk push XXX.podspec ,若出现图9.0,则表示需要注册一个session
图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,在团队中高效开发的主要内容,如果未能解决你的问题,请参考以下文章