自动打包方法、装置、计算机设备及存储介质与流程

文档序号:14399194阅读:174来源:国知局

本发明涉及软件开发技术领域,特别是涉及一种自动打包方法、装置、计算机设备及存储介质。



背景技术:

随着互联网技术的飞速发展,各个平台均通过sdk(softwaredevelopmentkit,软件开发工具包)的方式来链接自己和合作方的app(application,应用程序),从而达成互利共赢。各个平台为合作方提供的sdk在保证代码的隐私性的同时还需要让合作方能够方便使用,通常各个平台会对所提供的sdk设计一套合理的打包方案,所打出的包能够一次性编译代码、例子和文档。

在ios系统中,传统的打包方式是通过xcode打出framework,再把framework、例子和文档通过手动的方式拷贝到同一个文件夹,之后压缩成zip交付给合作方。传统的做法在打包过程中,每次都需要花大量时间检查在打包过程中是否有遗漏。因此,传统的打包方法存在效率低的缺点。



技术实现要素:

基于此,有必要针对传统的打包方法效率低的问题,提供自动打包方法、装置、计算机设备及存储介质。

一种自动打包方法,所述方法包括如下步骤:接收脚本语言发送的指令,所述指令包括编译指令、复制指令、生成指令和压缩指令;根据所述编译指令,对集成开发工具的初始库进行编译,生成对应的静态库;根据所述生成指令,生成与所述静态库对应的指导文件,所述指导文件用来指示如何使用所述静态库;根据所述复制指令,将所述指导文件和所述静态库复制到同一目录文件中;根据所述压缩指令,将所述目录文件压缩。

在一个实施例中,所述集成开发工具包括sdk。

在一个实施例中,所述sdk为iossdk(ios系统软件开发工具包),所述静态库为framework静态库,所述根据所述编译指令,对集成开发工具的初始库进行编译,生成对应的静态库的步骤,包括:根据所述编译指令,对iossdk的初始framework动态库进行编译,得到模拟器framework和真机framework;将所述模拟器framework和所述真机framework合并,生成对应的framework静态库。

在一个实施例中,所述指导文件包括demo和文档,所述demo用来演示如何使用framework静态库,所述文档用来指导如何使用framework静态库。

在一个实施例中,所述指令还包括更新指令,所述根据所述生成指令,生成与所述静态库对应的指导文件的步骤之后,所述根据所述复制指令,将所述指导文件和所述静态库复制到同一目录文件中的步骤之前,还包括步骤:根据所述更新指令,获取全局版本号,所述全局版本号用来标识版本;将所述全局版本号更新到所述指导文件和所述静态库中。

在一个实施例中,所述指令还包括命名指令,所述根据所述压缩指令,将所述目录文件压缩的步骤之前,还包括步骤:根据所述命名指令,结合所述全局版本号和当前的时间,对所述目录文件进行命名。

一种自动的打包装置,所述装置包括:指令接收模块,用于接收脚本语言发送的指令,所述指令包括编译指令、复制指令、生成指令和压缩指令;静态库编译模块,用于根据所述编译指令,对集成开发工具的初始库进行编译,生成对应的静态库;指导文件生成模块,用于根据所述生成指令,生成与所述静态库对应的指导文件,所述指导文件用来指示如何使用所述静态库;复制模块,用于根据所述复制指令,将所述指导文件和所述静态库复制到同一目录文件中;目录文件压缩模块,用于根据所述压缩指令,将所述目录文件压缩。

在一个实施例中,所述指令还包括更新指令,所述指导文件生成模块根据所述生成指令,生成与所述静态库对应的指导文件之后,所述复制模块根据所述复制指令,将所述指导文件和所述静态库复制到同一目录文件中之前,还包括:全局版本号更新模块,用于根据所述更新指令,获取全局版本号;将所述全局版本号更新到所述指导文件和所述静态库中。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一项所述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项所述方法的步骤。

上述自动打包方法,直接根据脚本发送的指令来实现打包过程中的编译、复制和压缩等步骤,整个打包过程都不需要手动参与,与传统的打包方法相比,有效地提高了打包效率。

附图说明

图1为一实施例自动打包方法流程图;

图2为另一实施例自动打包方法流程图;

图3为一实施例自动打包装置示意图;

图4为另一实施例自动打包装置示意图。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。

请参阅图1,在一个实施例中,一种自动打包方法,包括如下步骤:

步骤s100,接收脚本语言发送的指令。

具体地,指令包括编译指令、复制指令、生成指令和压缩指令,脚本语言的种类并不唯一,可以是shell、java、c、c++等,在不同的操作系统中,使用对应的脚本语言来发送指令,根据接收的指令来实现编译、复制、生成和压缩等操作。例如,在ios系统中,使用shell脚本语言来进行指令的发送,根据接收的shell脚本发送的指令,完成打包过程中的静态库编译、指导文件的生成、指导文件和静态库的复制与压缩等步骤。根据接收的指令,执行相应的操作,整个打包过程不需要手动参与,具有很强的操作便利性。

步骤s200,根据编译指令,对集成开发工具的初始库进行编译,生成对应的静态库。

具体地,集成开发工具的类型并不唯一,对于不同的操作系统,使用的集成开发工具也不一样,集成开发工具可以为sdk或jdk(javadevelopmentkit,java语言的软件开发工具包)等。进一步地,在一个实施例中,sdk包括androidsdk、iossdk或windowssdk。对于不同的操作系统,选用对应的集成开发工具进行编译,得到与之对应的静态库。

更进一步地,在一个实施例中,以ios系统为例,sdk为iossdk,静态库为framework静态库。步骤s200包括:根据编译指令,对iossdk的初始framework动态库进行编译,得到模拟器framework和真机framework;将模拟器framework和真机framework合并,生成对应的framework静态库。

具体地,对iossdk的framework动态库进行编译,得到相对应的模拟器framework和真机framework,模拟器framework只能运行在模拟器中,真机中无法运行,而真机framework只能在真机中运行,模拟器中无法运行。为了得到既能在真机中运行也能在模拟器中运行的库,需要将模拟器framework和真机framework合并为一个库,具体地,可以通过配置一个runscript,在script中使用lipo命令来合并模拟器framework和真机framework,重新生成一个framework静态库,合并生成之后的framework静态库能够同时支持在模拟器和真机上运行。应当指出的是,ios系统中,静态库的类型并不唯一,还可以是.a静态库,对iossdk的初始库进行编译,得到.a真机和.a模拟器,将得到的.a静态库,同样能够实现与framework静态库相同的功能。

步骤s300,根据生成指令,生成与静态库对应的指导文件。

具体地,指导文件用来指示如何使用静态库,针对不同的静态库,编译生成的指导文件也并不一样。指导文件是软件开发使用和维护过程中的必备资料,它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导,帮助,解惑的作用,尤其在维护工作中,具有不可或缺的作用。

进一步地,在一个实施例中,指导文件包括demo和文档,demo用来演示如何使用framework静态库,文档用来指导如何使用framework静态库。生成对应的demo和文档来指导如何使用framework静态库,提高了framework静态库的使用便利性。

步骤s500,根据复制指令,将指导文件和静态库复制到同一目录文件中。

具体地,根据复制指令将指导文件和静态库复制到同一目录文件中时,可以是将指导文件和静态库复制到之前已经建好的目录文件中,还可以是在复制指导文件和静态库的同时,新建一个目录文件,再将指导文件和静态库复制到所新建的目录文件中,在实际打包过程中,可以根据实际需要选择不同的方式来建立目录文件,只要能将指导文件和静态库复制到同一目录文件即可。将指导文件和静态库复制到同一目录文件中,方便后续的打包过程中对指导文件和静态库进行处理。

步骤s700,根据压缩指令,将目录文件压缩。

具体地,根据脚本语言发送的压缩指令,将同时存有指导文件和静态库的目录文件进行压缩。进一步地,目录文件压缩格式并不唯一,可以将目录文件压缩为zip、rar、7z或cab等格式。在实际的压缩过程中,采用不同的压缩软件对同时存有指导文件和静态库的目录文件进行压缩,得到对应格式的压缩包,完成整个打包过程。

在一个实施例中,步骤s300之后,步骤s500之前,还包括步骤s400,根据更新指令,获取全局版本号,将全局版本号更新到指导文件和静态库中。

具体地,全局版本号用来标识版本信息,全局版本号的类型不唯一,可以是数字、字母或者数字与字母的组合,只要能够反映出静态库和指导文件的版本信息即可。以ios系统为例,每次ios系统更新,都有对应的版本,比如ios5、ios6等,根据更新指令,将全局版本号更新到对应的指导文件和静态库中,用户可以根据版本号来判断所使用的静态库和指导文件是否是最新版本。进一步地,根据更新指令,统一对指导文件和静态库的全局版本号进行更新,避免出现手动修改全局版本号时,出现遗漏的情况。

在一个实施例中,步骤s500之后,步骤s700之前,还包括步骤s600,根据命名指令,结合全局版本号和当前的时间,对目录文件进行命名。

具体地,将指导文件和静态库复制到同一目录文件之后,根据之前更新得到的全局版本号和当前所处的时间点,对同时存有指导文件和静态库的目录文件进行命名。进一步地,在对目录文件进行命名时,当前所处的时间点可以是年、月、日的信息,还可以是更为精确的年、月、日、时、分、秒的信息;全局版本号和当前所处时间的顺序也并不为一,可以是先使用全局版本号,再使用当前所处的时间对目录文件进行命名,还可以是先使用当前所处的时间,再使用全局版本号对目录文件进行命名。例如,全局版本号为sdk1.0,当前所处的时间为年、月、日信息,先使用当前所处的时间,再使用全局版本号对目录文件进行命名,得到的目录文件名为:年/月/日/sdk1.0。采用全局版本号和当前的时间对目录文件进行命名,可以让使用者根据目录文件就能得到全局版本信息和打包时间。

为了便于理解本发明的自动打包方法,下面结合具体实施例来进行解释说明。

以ios系统为例,集成开发工具为iossdk,编译生成的为framework静态库,采用的脚本语言为shell脚本。

在进行自动打包时,接收shell脚本发送的编译指令、复制指令、生成指令、更新指令和命名指令,根据接收的编译指令,对iossdk的初始framework动态库进行编译,得到模拟器framework和真机framework,之后将模拟器framework和真机framework合并得到既能在模拟器上运行,也能在真机上运行的framework静态库;之后根据生成指令,生成与framework静态库对应的demo和文档,demo用来演示如何使用framework静态库,文档用来指导如何使用framework静态库,在得到demo、文档和framework静态库之后,根据更新指令,获取全局版本号sdk1.0,并将全局版本号sdk1.0更新到对应的demo、文档和framework静态库中,用来统一标识版本;之后根据复制指令,建立一个目录文件,将具有统一全局版本号的demo、文档和framework静态库复制到所建立的目录文件中,根据命名指令,结合全局版本号sdk1.0和当前所处时间的年、月、日,对存有具有统一全局版本号的demo、文档和framework静态库的目录文件进行命名,将之命名为:年/月/日/sdk1.0;最后将命名之后的目录文件压缩为zip格式,完成自动打包。

上述自动打包方法,直接根据脚本发送的指令来实现打包过程中的编译、复制和压缩等步骤,整个打包过程都不需要手动参与,与传统的打包方法相比,有效地提高了打包效率。

在一个实施例中,一种自动打包装置,包括指令接收模块110、静态库编译模块120、指导文件生成模块130、复制模块150和目录文件压缩模块170。

指令接收模块110,用于接收脚本语言发送的指令。具体地,指令包括编译指令、复制指令、生成指令和压缩指令,脚本语言的种类并不唯一,可以是shell、java、c、c++等,在不同的操作系统中,使用对应的脚本语言来发送指令,根据接收的指令来实现编译、复制、生成和压缩等操作。例如,在ios系统中,使用shell脚本语言来进行指令的发送,根据接收的shell脚本发送的指令,完成打包过程中的静态库编译、指导文件的生成、指导文件和静态库的复制与压缩等步骤。根据接收的指令,执行相应的操作,整个打包过程不需要手动参与,具有很强的操作便利性。

静态库编译模块120,用于根据编译指令,对集成开发工具的初始库进行编译,生成对应的静态库。

具体地,集成开发工具的类型并不唯一,对于不同的操作系统,使用的集成开发工具也不一样,集成开发工具可以为sdk或jdk等。进一步地,在一个实施例中,sdk包括androidsdk、iossdk或windowssdk。对于不同的操作系统,选用对应的集成开发工具进行编译,得到与之对应的静态库。

更进一步地,在一个实施例中,以ios系统为例,sdk为iossdk,静态库为framework静态库。步骤s200包括:根据编译指令,对iossdk的初始framework动态库进行编译,得到模拟器framework和真机framework;将模拟器framework和真机framework合并,生成对应的framework静态库。具体地,对iossdk的framework动态库进行编译,得到相对应的模拟器framework和真机framework,模拟器framework只能运行在模拟器中,真机中无法运行,而真机framework只能在真机中运行,模拟器中无法运行。为了得到既能在真机中运行也能在模拟器中运行的库,需要将模拟器framework和真机framework合并为一个库,具体地,可以通过配置一个runscript,在script中使用lipo命令来合并模拟器framework和真机framework,重新生成一个framework静态库,合并生成之后的framework静态库能够同时支持在模拟器和真机上运行。应当指出的是,ios系统中,静态库的类型并不唯一,还可以是.a静态库,对iossdk的初始库进行编译,得到.a真机和.a模拟器,将得到的.a静态库,同样能够实现与framework静态库相同的功能。

指导文件生成模块130,用于根据生成指令,生成与静态库对应的指导文件。

具体地,指导文件用来指示如何使用静态库,针对不同的静态库,编译生成的指导文件也并不一样。指导文件是软件开发使用和维护过程中的必备资料,它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导,帮助,解惑的作用,尤其在维护工作中,具有不可或缺的作用。

进一步地,在一个实施例中,指导文件包括demo和文档,demo用来演示如何使用framework静态库,文档用来指导如何使用framework静态库。生成对应的demo和文档来指导如何使用framework静态库,提高了framework静态库的使用便利性。

复制模块150,用于根据复制指令,将指导文件和静态库复制到同一目录文件中。

具体地,根据复制指令将指导文件和静态库复制到同一目录文件中时,可以是将指导文件和静态库复制到之前已经建好的目录文件中,还可以是在复制指导文件和静态库的同时,新建一个目录文件,再将指导文件和静态库复制到所新建的目录文件中,在实际打包过程中,可以根据实际需要选择不同的方式来建立目录文件,只要能将指导文件和静态库复制到同一目录文件即可。将指导文件和静态库复制到同一目录文件中,方便后续的打包过程中对指导文件和静态库进行处理。

目录文件压缩模块170,用于根据压缩指令,将目录文件压缩。

具体地,根据脚本语言发送的压缩指令,将同时存有指导文件和静态库的目录文件进行压缩。进一步地,目录文件压缩格式并不唯一,可以将目录文件压缩为zip、rar、7z或cab等格式。在实际的压缩过程中,采用不同的压缩软件对同时存有指导文件和静态库的目录文件进行压缩,得到对应格式的压缩包,完成整个打包过程。

在一个实施例中,指令还包括更新指令,指导文件生成模块130根据生成指令,生成与静态库对应的指导文件之后,复制模块150根据复制指令,将指导文件和静态库复制到同一目录文件中之前,还包括:全局版本号更新模块140,用于根据更新指令,获取全局版本号;将全局版本号更新到指导文件和静态库中。

具体地,全局版本号用来标识版本信息,全局版本号的类型不唯一,可以是数字、字母或者数字与字母的组合,只要能够反映出静态库和指导文件的版本信息即可。以ios系统为例,每次ios系统更新,都有对应的版本,比如ios5、ios6等,根据更新指令,将全局版本号更新到对应的指导文件和静态库中,用户可以根据版本号来判断所使用的静态库和指导文件是否是最新版本。进一步地,根据更新指令,统一对指导文件和静态库的全局版本号进行更新,避免出现手动修改全局版本号时,出现遗漏的情况。

在一个实施例中,指令还包括命名指令,目录文件压缩模块170根据压缩指令,将目录文件压缩之前,还包括:目录文件命名模块160,用于根据命名指令,结合全局版本号和当前的时间,对目录文件进行命名。

具体地,将指导文件和静态库复制到同一目录文件之后,根据之前更新得到的全局版本号和当前所处的时间点,对同时存有指导文件和静态库的目录文件进行命名。进一步地,在对目录文件进行命名时,当前所处的时间点可以时年、月、日信息,还可以是更为精确的年、月、日、时、分、秒的信息;全局版本号和当前所处时间的顺序也并不为一,可以是先使用全局版本号,再使用当前所处的时间对目录文件进行命名,还可以是先使用当前所处的时间,再使用全局版本号对目录文件进行命名。例如,全局版本号为sdk1.0,当前所处的时间为年、月、日信息,先使用当前所处的时间,再使用全局版本号对目录文件进行命名,得到的目录文件名为:年/月/日/sdk1.0。采用全局版本号和当前的时间对目录文件进行命名,可以让使用者根据目录文件就能得到全局版本信息和打包时间。

上述自动打包装置,直接根据脚本发送的指令来实现打包过程中的编译、复制和压缩等过程,整个打包过程都不需要手动参与,与传统的打包方法相比,有效地提高了打包效率。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任意一项方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项方法的步骤。

上述计算机设备及存储介质,直接根据脚本发送的指令来实现打包过程中的编译、复制和压缩等步骤,整个打包过程都不需要手动参与,与传统的打包方法相比,有效地提高了打包效率。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1