为什么SDK打包需要自动化
为什么在SDK的开发需要做自动化打包呢?我用xcode编译一个framework或者*.a直接给开发者不也是可以的么?然而,有各种各样的需求,会让你手工编译打包SDK成为一件非常头疼和无聊的事情,自动化出包就是让这些繁琐而易出错的事情交给电脑这个又精确又不知疲倦的傻瓜来做。
那么,具体有哪些场景呢?以下是我遇到的一些场景,小结如下:
-
需要出包的平台众多
比如做一个游戏的SDK,那么就有需要打包各种游戏引擎版本的SDK:OC版本,cocos2dx版本,Unity版本等等。其实每个引擎下面iOS平台的包核心层内容是一样的。而在引擎层的资源每个平台又是大不一样的。如果靠手工来完成,每次出包可是一件吐血的事情。一不小心少拷贝一个文件,文件版本拷贝不对之类的事情就很容易发生。另外有可能代码有微小的差别,编译的时候又需要改动一下代码,这样就很容易改错或者忘改。这种事情就应该交给电脑。 -
定制化需求众多
SDK可能按功能分了模块,或者对功能做了一些定制。比如公司产品线可能会分核心版本和全功能版本;某某厂家需要的SDK,有某某功能,而通用版本则没有这些功能。因此在输出包的时候如果手动打包就变得很麻烦。尤其是如果提供的SDK对外接口不一样的时候,如果要手动出包,则对头文件要手动定制。这个过程也是相当痛苦的。需要自动化来处理这些边边角角的事情。
如果这个版本定制的需求和平台需求一起来,组合起来的包个数就会让人疯掉。比如产品说:我们要一个 cocos2dx平台的全功能版本的SDK,给xx厂商的定制版我们只提供OC平台的包。
-
配合相应的自动化测试
除了自动化出SDK之外,我们可能还需要输出相应包的sample App作为测试。各种平台和各种定制下来,最终可能有十几个乃至几十个包需要验证。因此自动化输出相应的测试sample也是很重要的。不仅仅是校验代码的正确性,可能还需要校验文档,版本号,正确资源等等事情。靠人工的眼睛校验也是很二的。
当然如果能配合其他自动化集成工具,诸如Jenkins之类的,完全就不用自己出包了。以后写好代码提交,就自己打个包传git,编个测试app传蒲公英等等。然后测试人员就直接可以测了。想想这种丝滑的流程都有些小激动。
网友评论