一种React Native应用自动化打包发布的方法及系统技术方案

技术编号:23314813 阅读:96 留言:0更新日期:2020-02-11 17:41
本发明专利技术公开了一种React Native应用自动化打包发布的方法及系统。包括:代码更新模块,负责从代码仓库更新下载代码,支持从SVN、GIT、CVS中更新代码;编译校验模块,负责校验及纠正一些应用工程配置和一些编译类文件;编译打包模块,负责将代码编译打包成应用安装包,根据不同配置进行定制化打包;应用发布模块,负责发布编译完成的应用安装包,配置发布到不同平台。本发明专利技术将ReactNative应用打包发布过程简单化、自动化,可极大减少常规手动编译打包发布过程中开发人员的重复操作,从而节约大量人力和时间成本。针对应用编译打包中的一些问题进行校验纠正,减少打包中的一些配置错误问题,提高打包成功率。

A method and system of automatic package and release of react native application

【技术实现步骤摘要】
一种ReactNative应用自动化打包发布的方法及系统
本专利技术涉及计算机软件
,尤其涉及一种ReactNative应用自动化打包发布的方法及系统。
技术介绍
ReactNative(简称RN)是Facebook开源的跨平台移动应用开发框架,支持ios和android两大平台,是目前运用最广泛的移动应用开发框架。ReactNative应用打包发布过程是较为繁琐的,从JavaScript代码编译打包,到应用打包,再到应用发布,都需要依靠开发人员来手动完成,如果涉及到应用多渠道打包和多平台发布,那整个过程将更为繁琐且耗时。而每一次的版本发布,开发人员都需要重复这一过程。
技术实现思路
本专利技术的目的在于提供一种ReactNative应用自动化打包发布的方法及系统,可通过一键触发,或通过配置类似定时策略等打包策略来自动触发,便可全程无人监守自动完成代码编译、多渠道打包、多平台发布,极大简化ReactNative应用打包发布流程,同时最大化减少人力的重复操作。本专利技术由如下技术方案实施:一种ReactNative应用自动化打包发布的方法,包括以下步骤:配置任务触发环节,支持三种任务触发方式:代码提交触发、定时任务触发、一键触发,其中:代码提交触发通过检测代码仓库的代码提交动作自动触发任务执行;定时任务触发通过配置定时任务使得在特定时间自动触发任务执行;一键触发通过相关人员手动触发任务执行;代码更新环节,打包发布任务触发后,进入代码更新,如果代码更新过程中捕获到异常,则邮件通知责任人任务执行失败,并附件相关任务日志,结束任务;反之,则进入下一步;编译校验环节,如果编译校验过程中捕获到异常,则邮件通知责任人任务执行失败,并附件相关任务日志,结束任务;反之,则进入下一步;编译打包环节,如果编译打包过程中捕获到异常,则邮件通知责任人任务执行失败,并附件相关任务日志,结束任务;反之,则进入下一步;应用发布环节,如果应用发布过程中捕获到异常,则邮件通知责任人任务执行失败,并附件相关任务日志,结束任务;反之,则进入下一步;最后通过邮件或者短信方式通知责任人应用发布成功。进一步地,所述代码更新环节具体为:从配置中读取代码仓库类型、代码仓库地址、本地代码检出路径;判断本地代码检出目录是否存在,如果不存在,则在本地创建代码检出路径,如果存在,则进入下一步;根据代码仓库类型配置,选择进入SVN、GIT或者CVS更新模块,更新代码至本地。进一步地,所述编译校验环节具体为:从编译资源集中读取应用配置文件config.json,并写入到相应的应用工程配置文件中;从编译资源集中读取索引文件index.json,索引文件index.json是以文件名filename作为关键字和以文件目标路径destination作为值的键值对,遍历键值对;其中filename对应了编译资源集中的文件,destination对应其需要写入的应用工程中的文件的路径;读取键值对filename和destination;根据关键字filename从编译资源集中读取到相应文件,根据destination将该文件写入到应用工程中的指定文件中;判断当前是否是最后一个键值对,如果不是则返回第三步,反之则结束编译校验。进一步地,所述编译打包环节具体为:通过reactnativebundle命令,将工程中的js代码打包成bundle文件;读取配置中的应用平台类型,判断是ios平台还是android平台,如果是ios平台,则进入xcodebuild编译模块,如果是android平台,则进入gradle编译模块;输出应用安装包到指定路径。进一步地,所述应用发布环节具体为:从配置中读取需要发布应用的平台;分别进入相应平台的发布模块,调用相应平台的应用发布接口来提交应用发布;应用发布完成后,邮件通知责任人应用发布结果。本专利技术实施例还提供一种ReactNative应用自动化打包发布的系统,包括:代码更新模块,负责从代码仓库更新下载代码,支持从SVN、GIT、CVS中更新代码;编译校验模块,负责校验及纠正一些应用工程配置和一些编译类文件;编译打包模块,负责将代码编译打包成应用安装包,根据不同配置进行定制化打包;应用发布模块,负责发布编译完成的应用安装包,配置发布到不同平台。进一步地,所述代码更新模块具体实现的操作为:从配置中读取代码仓库类型、代码仓库地址、本地代码检出路径;判断本地代码检出目录是否存在,如果不存在,则在本地创建代码检出路径,如果存在,则进入下一步;根据代码仓库类型配置,选择进入SVN、GIT或者CVS更新模块,更新代码至本地。进一步地,所述编译校验模块具体实现的操作为:从编译资源集中读取应用配置文件config.json,并写入到相应的应用工程配置文件中;从编译资源集中读取索引文件index.json,索引文件index.json是以文件名filename作为关键字和以文件目标路径destination作为值的键值对,遍历键值对;其中filename对应了编译资源集中的文件,destination对应其需要写入的应用工程中的文件的路径;读取键值对filename和destination;根据关键字filename从编译资源集中读取到相应文件,根据destination将该文件写入到应用工程中的指定文件中;判断当前是否是最后一个键值对,如果不是则返回第三步,反之则结束编译校验。进一步地,所述编译打包模块具体实现的操作为:通过reactnativebundle命令,将工程中的js代码打包成bundle文件;读取配置中的应用平台类型,判断是ios平台还是android平台,如果是ios平台,则进入xcodebuild编译模块,如果是android平台,则进入gradle编译模块;输出应用安装包到指定路径。进一步地,所述应用发布模块具体实现的操作为:从配置中读取需要发布应用的平台;分别进入相应平台的发布模块,调用相应平台的应用发布接口来提交应用发布;应用发布完成后,邮件通知责任人应用发布结果。本专利技术的有益效果:1)节约人力和时间成本:本专利技术将ReactNative应用打包发布过程简单化、自动化,可极大减少常规手动编译打包发布过程中开发人员的重复操作,从而节约大量人力和时间成本。2)提高打包成功率:本专利技术校验模块中会针对应用编译打包中的一些问题进行校验纠正,减少打包中的一些配置错误问题,以及编译问题,从而能提高打包成功率,而流水线式的自动化打包发布过程,也避免了常规手动打包过程中的人为失误,能进一步有效提高打包成功率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案本文档来自技高网...

【技术保护点】
1.一种React Native应用自动化打包发布的方法,其特征在于,包括以下步骤:/n配置任务触发环节,支持三种任务触发方式:代码提交触发、定时任务触发、一键触发,其中:代码提交触发通过检测代码仓库的代码提交动作自动触发任务执行;定时任务触发通过配置定时任务使得在特定时间自动触发任务执行;一键触发通过相关人员手动触发任务执行;/n代码更新环节,打包发布任务触发后,进入代码更新,如果代码更新过程中捕获到异常,则邮件通知责任人任务执行失败,并附件相关任务日志,结束任务;反之,则进入下一步;/n编译校验环节,如果编译校验过程中捕获到异常,则邮件通知责任人任务执行失败,并附件相关任务日志,结束任务;反之,则进入下一步;/n编译打包环节,如果编译打包过程中捕获到异常,则邮件通知责任人任务执行失败,并附件相关任务日志,结束任务;反之,则进入下一步;/n应用发布环节,如果应用发布过程中捕获到异常,则邮件通知责任人任务执行失败,并附件相关任务日志,结束任务;反之,则进入下一步;/n最后通过邮件或者短信方式通知责任人应用发布成功。/n

【技术特征摘要】
1.一种ReactNative应用自动化打包发布的方法,其特征在于,包括以下步骤:
配置任务触发环节,支持三种任务触发方式:代码提交触发、定时任务触发、一键触发,其中:代码提交触发通过检测代码仓库的代码提交动作自动触发任务执行;定时任务触发通过配置定时任务使得在特定时间自动触发任务执行;一键触发通过相关人员手动触发任务执行;
代码更新环节,打包发布任务触发后,进入代码更新,如果代码更新过程中捕获到异常,则邮件通知责任人任务执行失败,并附件相关任务日志,结束任务;反之,则进入下一步;
编译校验环节,如果编译校验过程中捕获到异常,则邮件通知责任人任务执行失败,并附件相关任务日志,结束任务;反之,则进入下一步;
编译打包环节,如果编译打包过程中捕获到异常,则邮件通知责任人任务执行失败,并附件相关任务日志,结束任务;反之,则进入下一步;
应用发布环节,如果应用发布过程中捕获到异常,则邮件通知责任人任务执行失败,并附件相关任务日志,结束任务;反之,则进入下一步;
最后通过邮件或者短信方式通知责任人应用发布成功。


2.根据权利要求1所述的一种ReactNative应用自动化打包发布的方法,其特征在于,所述代码更新环节具体为:
从配置中读取代码仓库类型、代码仓库地址、本地代码检出路径;
判断本地代码检出目录是否存在,如果不存在,则在本地创建代码检出路径,如果存在,则进入下一步;
根据代码仓库类型配置,选择进入SVN、GIT或者CVS更新模块,更新代码至本地。


3.根据权利要求1所述的一种ReactNative应用自动化打包发布的方法,其特征在于,所述编译校验环节具体为:
从编译资源集中读取应用配置文件config.json,并写入到相应的应用工程配置文件中;
从编译资源集中读取索引文件index.json,索引文件index.json是以文件名filename作为关键字和以文件目标路径destination作为值的键值对,遍历键值对;其中filename对应了编译资源集中的文件,destination对应其需要写入的应用工程中的文件的路径;
读取键值对filename和destination;
根据关键字filename从编译资源集中读取到相应文件,根据destination将该文件写入到应用工程中的指定文件中;
判断当前是否是最后一个键值对,如果不是则返回第三步,反之则结束编译校验。


4.根据权利要求1所述的一种ReactNative应用自动化打包发布的方法,其特征在于,所述编译打包环节具体为:
通过reactnativebundle命令,将工程中的js代码打包成bundle文件;
读取配置中的应用平台类型,判断是ios平台还是android平台,如果是ios平台,则进入xcodebuild编译模块,如果是android平台,则进入gradle编译模块;
输出应用安装包到指定路径。


5.根据权利要求1所述的一种Rea...

【专利技术属性】
技术研发人员:邹俊达何安松
申请(专利权)人:深圳市同洲电子股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1