1.本发明涉及数据处理技术领域,尤其涉及一种应用程序安装文件生成方法、电子装置及计算机可读存储介质。
背景技术:
2.应用程序代码更新后需要进行重新编译并打包,现有技术中,对应用程序进行重新编译时,通常需要对所有文件都进行重新编译,而不是进行增量编译,容易出现大量重复编译导致降低了文件编译的效率。而现有的加速编译方法是利用pod生成的二进制产物来加速,保存读取二进制产物来提高整体的编译速度,这种方法在文件发生变化时会出现运行崩溃但编译通过的问题。且编译完成后对生成的应用程序进行手动打包、签名、公证以及盖章,需要等待上一步明确的完成之后才能进行下一步,非常耗时且繁琐,严重影响开发效率。
技术实现要素:
3.鉴于以上内容,有必要提供一种应用程序安装文件生成方法,用于自动高效地对应用程序文件进行打包。
4.本发明提供的应用程序安装文件生成方法,包括:
5.获取应用程序待发布版本的源代码文件与多个第三方源代码的库文件,获取应用程序已发布版本的第三方源代码的第一版本文件,基于所述应用程序待发布版本的源代码文件获取待发布版本的第三方源代码的第二版本文件,所述第一版本文件和第二版本文件存储对应版本的各个库文件的sha1值;
6.基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1值和待发布版本的第三方源代码的第二版本文件中的sha1值识别所述库文件中发生变化的目标库文件,且对所述目标库文件进行代码编译得到新版本的编译文件;
7.基于所述新版本的编译文件,对预设缓存中存储的所述应用程序已发布版本对应的编译文件进行更新,得到应用程序的待发布版本编译文件,将所述应用程序的编译输出路径修改为所述预设缓存中存储所述应用程序编译文件的文件夹;
8.基于从所述预设缓存中获取到的所述待发布版本编译文件,与所述源代码文件生成待发布版本应用程序文件,且打包所述待发布版本应用程序文件得到打包文件,对所述打包文件进行处理生成应用程序安装文件。
9.可选地,所述获取应用程序待发布版本的源代码文件与多个第三方源代码库文件之前,还包括:
10.通过cocoapods建立所述应用程序的第三方源代码依赖库用于存储应用程序已发布版本的多个第三方源代码的库文件;
11.通过xcode创建应用程序的第三方源码工程项目,所述第三方源码工程项目用于安装并运行应用程序的源代码文件;
12.在安装并运行应用程序的源代码文件时,利用xcodebuild编译应用程序已发布版本的源代码文件得到应用程序已发布版本的第三方源代码的第一版本文件;
13.对应用程序已发布版本的多个第三方源代码的库文件进行编译得到已发布版本的编译文件并存储到所述预设缓存中。
14.可选地,所述基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1值和待发布版本的第三方源代码的第二版本文件中的sha1值识别所述库文件中发生变化的目标库文件包括:
15.将所述第一版本文件中各个第三方源代码库文件对应的sha1值与所述第二版本文件中各个第三方源代码库文件对应的sha1值作对比;
16.若所述第一版本文件中sha1值与所述第二版本文件中对应的sha1值不同,则将该sha1值对应的所述第三方源代码库文件识别为发生变更的第三方源代码库文件;
17.若所述第一版本文件中sha1值在所述第二版本文件中无对应的sha1值,则将该sha1值对应的所述第三方源代码库文件识别为已删除的第三方源代码库文件;
18.若所述第二版本文件中sha1值在所述第一版本文件中无对应的sha1值,则将该sha1值对应的所述第三方源代码库文件识别为新增的第三方源代码库文件。
19.可选地,所述基于所述新版本的编译文件对预设缓存中存储的应用程序的已发布版本编译文件进行更新包括:
20.识别发生变更或删除的第三方源代码库文件在预设缓存中对应的已发布版本编译文件并将其删除;
21.将所述新版本的编译文件存储至所述预设缓存中。
22.可选地,所述将所述应用程序的编译输出路径修改为所述预设缓存中存储所述应用程序编译文件的文件夹包括:
23.通过所述第三方源码工程项目的组织配置文件将所述应用程序的编译输出路径预先修改为所述预设缓存中存储所述应用程序编译文件的文件夹,并删除所述应用程序的第三方源码的依赖工程。
24.可选地,对所述打包文件进行处理生成应用程序安装文件包括:
25.获取签名指令,根据所述签名指令将签名信息写入所述打包文件;
26.公证所述写入签名信息的打包文件;
27.将签章信息写入公证后的打包文件得到应用程序安装文件。
28.可选地,采用notarytool对写入所述签名信息的打包文件进行公证。
29.此外,为实现上述目的,本发明还提供一种电子装置,该电子装置包括:存储器、处理器,所述处理器与所述存储器电连接,所述存储器上存储有可在所述处理器上运行的应用程序安装文件生成程序,所述应用程序安装文件生成被所述处理器执行时实现如上所述的应用程序安装文件生成方法。
30.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有应用程序安装文件生成程序,所述应用程序安装文件生成程序可被一个或者多个处理器执行,以实现如上所述的应用程序安装文件生成方法。
31.此外,为实现上述目的,本发明还提供一种应用程序安装文件生成装置,该装置包括:
32.文件获取模块:用于获取应用程序待发布版本的源代码文件与多个第三方源代码的库文件,获取应用程序已发布版本的第三方源代码的第一版本文件,基于所述应用程序待发布版本的源代码文件获取待发布版本的第三方源代码的第二版本文件,所述第一版本文件和第二版本文件存储对应版本的各个库文件的sha1值;
33.编译模块:用于基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1值和待发布版本的第三方源代码的第二版本文件中的sha1值识别所述库文件中发生变化的目标库文件,且对所述目标库文件进行代码编译得到新版本的编译文件;
34.缓存模块:用于基于所述新版本的编译文件,对预设缓存中存储的所述应用程序已发布版本对应的编译文件进行更新,得到应用程序的待发布版本编译文件,将所述应用程序的编译输出路径修改为所述预设缓存中存储所述应用程序编译文件的文件夹;
35.打包模块:用于基于从所述预设缓存中获取到的所述待发布版本编译文件,与所述源代码文件生成待发布版本应用程序文件,且打包所述待发布版本应用程序文件得到打包文件,对所述打包文件进行处理生成应用程序安装文件。
附图说明
36.图1为本发明应用程序安装文件生成方法一实施例的流程图;
37.图2为本发明电子装置一实施例的示意图;
38.图3为本发明应用程序安装文件生成装置一实施例的模块示意图。
39.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
40.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
42.如图1所示,为本发明应用程序安装文件生成方法一实施例的流程图,该应用程序安装文件生成方法,包括步骤s1-s3。
43.s1、获取应用程序待发布版本的源代码文件与多个第三方源代码的库文件,获取应用程序已发布版本的第三方源代码的第一版本文件,基于所述应用程序待发布版本的源代码文件获取待发布版本的第三方源代码的第二版本文件,所述第一版本文件和第二版本文件存储对应版本的各个库文件的sha1值。
44.具体地,通过终端获取用户发送的打包指令,所述打包指令包括应用程序的文件标识,根据所述文件标识从数据库中获取应用程序待发布版本的源代码文件与多个第三方
源代码的库文件,以及已发布版本的第三方源代码的第一版本文件。应用程序版本文件用于记录所述应用程序的源代码文件的每个已安装版本的版本信息和依赖关系,所述第一版本文件为利用xcodebuild编译应用程序已发布版本的源代码文件得到的对应版本文件,所述第二版本文件为利用xcodebuild编译应用程序待发布版本的源代码文件得到的对应版本文件。
45.具体地,所述数据库基于所述文件标识管理应用程序的对应文件,包括应用程序待发布版本与已发布版本的源代码文件,以及各版本对应的多个第三方源代码的库文件。
46.s2、基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1值和待发布版本的第三方源代码的第二版本文件中的sha1值识别所述库文件中发生变化的目标库文件,且对所述目标库文件进行代码编译得到新版本的编译文件。
47.具体地,通过cocoapods建立所述应用程序的第三方源代码依赖库用于存储应用程序已发布版本的多个第三方源代码的库文件;通过xcode创建应用程序的第三方源码工程项目,所述第三方源码工程项目用于安装并运行应用程序的源代码文件;在安装并运行应用程序的源代码文件时,利用xcodebuild编译应用程序已发布版本的源代码文件得到应用程序已发布版本的第三方源代码的第一版本文件;对应用程序已发布版本的多个第三方源代码的库文件进行编译得到已发布版本的编译文件并存储到所述预设缓存中。
48.具体地,所述基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1值和待发布版本的第三方源代码的第二版本文件中的sha1值识别所述库文件中发生变化的目标库文件包括:将所述第一版本文件中各个第三方源代码库文件对应的sha1值与所述第二版本文件中各个第三方源代码库文件对应的sha1值作对比;若所述第一版本文件中sha1值与所述第二版本文件中对应的sha1值不同,则将该sha1值对应的所述第三方源代码库文件识别为发生变更的第三方源代码库文件;若所述第一版本文件中sha1值在所述第二版本文件中无对应的sha1值,则将该sha1值对应的所述第三方源代码库文件识别为已删除的第三方源代码库文件;若所述第二版本文件中sha1值在所述第一版本文件中无对应的sha1值,则将该sha1值对应的所述第三方源代码库文件识别为新增的第三方源代码库文件。sha1值为应用程序源代码库文件对应的安全散列算法值。
49.具体地,所述基于所述新版本的编译文件对预设缓存中存储的应用程序的已发布版本编译文件进行更新包括:识别发生变更或删除的第三方源代码库文件在预设缓存中对应的已发布版本编译文件并将其删除,将所述新版本的编译文件存储至所述预设缓存中。
50.s3、基于所述新版本的编译文件,对预设缓存中存储的所述应用程序已发布版本对应的编译文件进行更新,得到应用程序的待发布版本编译文件,将所述应用程序的编译输出路径修改为所述预设缓存中存储所述应用程序编译文件的文件夹。
51.具体地,通过所述第三方源码工程项目的组织配置文件将所述应用程序的编译输出路径预先修改为所述预设缓存中存储所述应用程序编译文件的文件夹,以便从缓存中获取所述应用程序对应的第三方源代码库文件的编译文件并生成对应的应用程序文件。所述第三方源码工程项目的组织配置文件通过变更pods_configuration_build_dir值和built_products_dir值修改所述应用程序的编译输出路径,并删除该应用程序的第三方源码的依赖工程,以防止每次获取编译文件时所述第三方源码的依赖工程对所述应用程序进行全编译导致重复编译。
52.s4、基于从所述预设缓存中获取到的所述待发布版本编译文件,与所述源代码文件生成待发布版本应用程序文件,且打包所述待发布版本应用程序文件得到打包文件,对所述打包文件进行处理生成应用程序安装文件。
53.具体地,对所述打包文件进行处理生成应用程序安装文件包括:获取签名指令,根据所述签名指令将签名信息写入所述打包文件,公证所述写入签名信息的打包文件,将签章信息写入公证后的打包文件得到应用程序安装文件。
54.具体地,采用notarytool(公证工具)对写入所述签名信息的打包文件进行公证,当公证结束时自动进入下一步骤,减少了公证查询步骤。
55.具体地,对所述应用程序安装文件进行测试,测试通过后将所述文件包上传至服务器,通过终端获取用户发送的分发对象,从所述服务器上获取所述文件包的服务器地址并发送至所述分发对象。
56.由上述实施例可知,本发明提出的应用程序安装文件生成方法,通过检测应用程序已发布版本的第一版本的文件与待发布版本的第二版本文件中的sha1值识别发生变更的第三方源代码库文件进行重编译,即只对部分有改动的第三方源代码库文件进行重新编译,并通过缓存获取未发生变更的第三方源代码库文件对应的编译文件,提高了编译效率,同时将手动流程通过计算机程序自动化运行,减少了人工操作出错的可能性,提升了应用程序安装文件打包的效率。
57.如图2所示,为本发明电子装置1一实施例的示意图。电子装置1是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述电子装置1可以是计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
58.在本实施例中,电子装置1包括,但不仅限于,可通过系统总线相互通信连接的存储器11、处理器12、网络接口13,该存储器11中存储有应用程序安装文件生成程序10,所述应用程序安装文件生成程序10可被所述处理器12执行。图1仅示出了具有组件11-13以及应用程序安装文件生成程序10的电子装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对电子装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
59.其中,存储器11包括内存及至少一种类型的可读存储介质。内存为电子装置1的运行提供缓存;可读存储介质可以是易失性的,也可以是非易失性的。具体的,可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等的存储介质。在一些实施例中,可读存储介质可以是电子装置1的内部存储单元,例如该电子装置1的硬盘;在另一些实施例中,该存储介质也可以是电子装置1的外部存储设备,例如电子装置1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。本实施例中,存储器11的可读存储介质主要包括存储程序区和存储数据区,其中,存储程序区通常用于存储安装于电子装置1的操作系统和各类应用软件,例如存储本发明一实施例中的应用程序安装文件生成程序10的代码等;存储数据区可存储根据区块链节点的使用所创
建的数据等,例如已经输出或者将要输出的各类数据。
60.处理器12在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子装置1的总体操作,例如执行与其他设备进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行应用程序安装文件生成程序10等。
61.网络接口13可包括无线网络接口或有线网络接口,该网络接口13用于在所述电子装置1与客户端(图中未画出)之间建立通信连接。
62.可选的,所述电子装置1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选的,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(organiclight-emittingdiode,oled)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子装置1中处理的信息以及用于显示可视化的用户界面。
63.在本发明的一实施例中,所述应用程序安装文件生成程序10被所述处理器12执行时实现如下步骤s1-s3。
64.s1、获取应用程序待发布版本的源代码文件与多个第三方源代码的库文件,获取应用程序已发布版本的第三方源代码的第一版本文件,基于所述应用程序待发布版本的源代码文件获取待发布版本的第三方源代码的第二版本文件,所述第一版本文件和第二版本文件存储对应版本的各个库文件的sha1值。
65.具体地,通过终端获取用户发送的打包指令,所述打包指令包括应用程序的文件标识,根据所述文件标识从数据库中获取应用程序待发布版本的源代码文件与多个第三方源代码的库文件,以及已发布版本的第三方源代码的第一版本文件。应用程序版本文件用于记录所述应用程序的源代码文件的每个已安装版本的版本信息和依赖关系,所述第一版本文件为利用xcodebuild编译应用程序已发布版本的源代码文件得到的对应版本文件,所述第二版本文件为利用xcodebuild编译应用程序待发布版本的源代码文件得到的对应版本文件。
66.具体地,所述数据库基于所述文件标识管理应用程序的对应文件,包括应用程序待发布版本与已发布版本的源代码文件,以及各版本对应的多个第三方源代码的库文件。
67.s2、基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1值和待发布版本的第三方源代码的第二版本文件中的sha1值识别所述库文件中发生变化的目标库文件,且对所述目标库文件进行代码编译得到新版本的编译文件。
68.具体地,通过cocoapods建立所述应用程序的第三方源代码依赖库用于存储应用程序已发布版本的多个第三方源代码的库文件;通过xcode创建应用程序的第三方源码工程项目,所述第三方源码工程项目用于安装并运行应用程序的源代码文件;在安装并运行应用程序的源代码文件时,利用xcodebuild编译应用程序已发布版本的源代码文件得到应用程序已发布版本的第三方源代码的第一版本文件;对应用程序已发布版本的多个第三方源代码的库文件进行编译得到已发布版本的编译文件并存储到所述预设缓存中。
69.具体地,所述基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1
值和待发布版本的第三方源代码的第二版本文件中的sha1值识别所述库文件中发生变化的目标库文件包括:将所述第一版本文件中各个第三方源代码库文件对应的sha1值与所述第二版本文件中各个第三方源代码库文件对应的sha1值作对比;若所述第一版本文件中sha1值与所述第二版本文件中对应的sha1值不同,则将该sha1值对应的所述第三方源代码库文件识别为发生变更的第三方源代码库文件;若所述第一版本文件中sha1值在所述第二版本文件中无对应的sha1值,则将该sha1值对应的所述第三方源代码库文件识别为已删除的第三方源代码库文件;若所述第二版本文件中sha1值在所述第一版本文件中无对应的sha1值,则将该sha1值对应的所述第三方源代码库文件识别为新增的第三方源代码库文件。sha1值为应用程序源代码库文件对应的安全散列算法值。
70.具体地,所述基于所述新版本的编译文件对预设缓存中存储的应用程序的已发布版本编译文件进行更新包括:识别发生变更或删除的第三方源代码库文件在预设缓存中对应的已发布版本编译文件并将其删除,将所述新版本的编译文件存储至所述预设缓存中。
71.s3、基于所述新版本的编译文件,对预设缓存中存储的所述应用程序已发布版本对应的编译文件进行更新,得到应用程序的待发布版本编译文件,将所述应用程序的编译输出路径修改为所述预设缓存中存储所述应用程序编译文件的文件夹。
72.具体地,通过所述第三方源码工程项目的组织配置文件将所述应用程序的编译输出路径预先修改为所述预设缓存中存储所述应用程序编译文件的文件夹,以便从缓存中获取所述应用程序对应的第三方源代码库文件的编译文件并生成对应的应用程序文件。所述第三方源码工程项目的组织配置文件通过变更pods_configuration_build_dir值和built_products_dir值修改所述应用程序的编译输出路径,并删除该应用程序的第三方源码的依赖工程,以防止每次获取编译文件时所述第三方源码的依赖工程对所述应用程序进行全编译导致重复编译。
73.s4、基于从所述预设缓存中获取到的所述待发布版本编译文件,与所述源代码文件生成待发布版本应用程序文件,且打包所述待发布版本应用程序文件得到打包文件,对所述打包文件进行处理生成应用程序安装文件。
74.具体地,对所述打包文件进行处理生成应用程序安装文件包括:获取签名指令,根据所述签名指令将签名信息写入所述打包文件,公证所述写入签名信息的打包文件,将签章信息写入公证后的打包文件得到应用程序安装文件。
75.具体地,采用notarytool(公证工具)对写入所述签名信息的打包文件进行公证,当公证结束时自动进入下一步骤,减少了公证查询步骤。
76.具体地,对所述应用程序安装文件进行测试,测试通过后将所述文件包上传至服务器,通过终端获取用户发送的分发对象,从所述服务器上获取所述文件包的服务器地址并发送至所述分发对象。
77.由上述实施例可知,本发明提出的电子装置1,通过检测应用程序已发布版本的第一版本的文件与待发布版本的第二版本文件中的sha1值识别发生变更的第三方源代码库文件进行重编译,即只对部分有改动的第三方源代码库文件进行重新编译,并通过缓存获取未发生变更的第三方源代码库文件对应的编译文件,提高了编译效率,同时将手动流程通过计算机程序自动化运行,减少了人工操作出错的可能性,提升了应用程序安装文件打包的效率。
78.在其他实施例中,应用程序安装文件生成程序10还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述应用程序安装文件生成程序10在电子装置1中的执行过程。
79.如图3所示,为本发明应用程序安装文件生成装置10一实施例的模块示意图。
80.在本发明的一实施例中,应用程序安装文件生成装置10,包括文件获取模块110、编译模块120、缓存模块130及打包模块140,示例性地:
81.所述文件获取模块110,用于获取应用程序待发布版本的源代码文件与多个第三方源代码的库文件,获取应用程序已发布版本的第三方源代码的第一版本文件,基于所述应用程序待发布版本的源代码文件获取待发布版本的第三方源代码的第二版本文件,所述第一版本文件和第二版本文件存储对应版本的各个库文件的sha1值;
82.所述编译模块120,用于基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1值和待发布版本的第三方源代码的第二版本文件中的sha1值识别所述库文件中发生变化的目标库文件,且对所述目标库文件进行代码编译得到新版本的编译文件;
83.所述缓存模块130,用于基于所述新版本的编译文件,对预设缓存中存储的所述应用程序已发布版本对应的编译文件进行更新,得到应用程序的待发布版本编译文件,将所述应用程序的编译输出路径修改为所述预设缓存中存储所述应用程序编译文件的文件夹;
84.所述打包模块140,用于基于从所述预设缓存中获取到的所述待发布版本编译文件,与所述源代码文件生成待发布版本应用程序文件,且打包所述待发布版本应用程序文件得到打包文件,对所述打包文件进行处理生成应用程序安装文件。
85.上述文件获取模块110、编译模块120、缓存模块130及打包模块140等模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
86.此外,本发明实施例还提出一种计算机可读存储介质,可读存储介质可以是易失性的,也可以是非易失性的。具体的,计算机可读存储介质可以是硬盘、多媒体卡、sd卡、闪存卡、smc、只读存储器(rom)、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器等中的任意一种或者几种的任意组合。计算机可读存储介质中包括应用程序安装文件生成程序10,所述应用程序安装文件生成程序10被处理器执行时实现如下操作:
87.a1、获取应用程序待发布版本的源代码文件与多个第三方源代码的库文件,获取应用程序已发布版本的第三方源代码的第一版本文件,基于所述应用程序待发布版本的源代码文件获取待发布版本的第三方源代码的第二版本文件,所述第一版本文件和第二版本文件存储对应版本的各个库文件的sha1值;
88.a2、基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1值和待发布版本的第三方源代码的第二版本文件中的sha1值识别所述库文件中发生变化的目标库文件,且对所述目标库文件进行代码编译得到新版本的编译文件;
89.a3、基于所述新版本的编译文件,对预设缓存中存储的所述应用程序已发布版本对应的编译文件进行更新,得到应用程序的待发布版本编译文件,将所述应用程序的编译输出路径修改为所述预设缓存中存储所述应用程序编译文件的文件夹;
90.a4、基于从所述预设缓存中获取到的所述待发布版本编译文件,与所述源代码文
件生成待发布版本应用程序文件,且打包所述待发布版本应用程序文件得到打包文件,对所述打包文件进行处理生成应用程序安装文件。
91.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
92.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
93.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
94.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
技术特征:
1.一种应用程序安装文件生成方法,其特征在于,包括:获取应用程序待发布版本的源代码文件与多个第三方源代码的库文件,获取应用程序已发布版本的第三方源代码的第一版本文件,基于所述应用程序待发布版本的源代码文件获取待发布版本的第三方源代码的第二版本文件,所述第一版本文件和第二版本文件存储对应版本的各个库文件的sha1值;基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1值和待发布版本的第三方源代码的第二版本文件中的sha1值识别所述库文件中发生变化的目标库文件,且对所述目标库文件进行代码编译得到新版本的编译文件;基于所述新版本的编译文件,对预设缓存中存储的所述应用程序已发布版本对应的编译文件进行更新,得到应用程序的待发布版本编译文件,将所述应用程序的编译输出路径修改为所述预设缓存中存储所述应用程序编译文件的文件夹;基于从所述预设缓存中获取到的所述待发布版本编译文件,与所述源代码文件生成待发布版本应用程序文件,且打包所述待发布版本应用程序文件得到打包文件,对所述打包文件进行处理生成应用程序安装文件。2.如权利要求1所述的应用程序安装文件生成方法,其特征在于,所述获取应用程序待发布版本的源代码文件与多个第三方源代码库文件之前,还包括:通过cocoapods建立所述应用程序的第三方源代码依赖库用于存储应用程序已发布版本的多个第三方源代码的库文件;通过xcode创建应用程序的第三方源码工程项目,所述第三方源码工程项目用于安装并运行应用程序的源代码文件;在安装并运行应用程序的源代码文件时,利用xcodebuild编译应用程序已发布版本的源代码文件得到应用程序已发布版本的第三方源代码的第一版本文件;对应用程序已发布版本的多个第三方源代码的库文件进行编译得到已发布版本的编译文件并存储到所述预设缓存中。3.如权利要求1所述的应用程序安装文件生成方法,其特征在于,所述基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1值和待发布版本的第三方源代码的第二版本文件中的sha1值识别所述库文件中发生变化的目标库文件包括:将所述第一版本文件中各个第三方源代码库文件对应的sha1值与所述第二版本文件中各个第三方源代码库文件对应的sha1值作对比;若所述第一版本文件中sha1值与所述第二版本文件中对应的sha1值不同,则将该sha1值对应的所述第三方源代码库文件识别为发生变更的第三方源代码库文件;若所述第一版本文件中sha1值在所述第二版本文件中无对应的sha1值,则将该sha1值对应的所述第三方源代码库文件识别为已删除的第三方源代码库文件;若所述第二版本文件中sha1值在所述第一版本文件中无对应的sha1值,则将该sha1值对应的所述第三方源代码库文件识别为新增的第三方源代码库文件。4.如权利要求3所述的应用程序安装文件生成方法,其特征在于,所述基于所述新版本的编译文件对预设缓存中存储的应用程序的已发布版本编译文件进行更新包括:识别发生变更或删除的第三方源代码库文件在预设缓存中对应的已发布版本编译文件并将其删除;
将所述新版本的编译文件存储至所述预设缓存中。5.如权利要求1所述的应用程序安装文件生成方法,其特征在于,所述将所述应用程序的编译输出路径修改为所述预设缓存中存储所述应用程序编译文件的文件夹包括:通过所述第三方源码工程项目的组织配置文件将所述应用程序的编译输出路径预先修改为所述预设缓存中存储所述应用程序编译文件的文件夹,并删除所述应用程序的第三方源码的依赖工程。6.如权利要求1所述的应用程序安装文件生成方法,其特征在于,对所述打包文件进行处理生成应用程序安装文件包括:获取签名指令,根据所述签名指令将签名信息写入所述打包文件;公证所述写入签名信息的打包文件;将签章信息写入公证后的打包文件得到应用程序安装文件。7.如权利要求6所述的应用程序安装文件生成方法,其特征在于,采用notarytool对写入所述签名信息的打包文件进行公证。8.一种电子装置,其特征在于,该电子装置包括:存储器、处理器,所述处理器与所述存储器电连接,所述存储器上存储有可在所述处理器上运行的应用程序安装文件生成程序,所述应用程序安装文件生成被所述处理器执行时实现如权利要求1-7任意一项所述的应用程序安装文件生成方法。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有应用程序安装文件生成程序,所述应用程序安装文件生成程序可被一个或者多个处理器执行,以实现如权利要求1-7任意一项所述的应用程序安装文件生成方法。10.一种应用程序安装文件生成装置,其特征在于,该装置包括:文件获取模块:用于获取应用程序待发布版本的源代码文件与多个第三方源代码的库文件,获取应用程序已发布版本的第三方源代码的第一版本文件,基于所述应用程序待发布版本的源代码文件获取待发布版本的第三方源代码的第二版本文件,所述第一版本文件和第二版本文件存储对应版本的各个库文件的sha1值;编译模块:用于基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1值和待发布版本的第三方源代码的第二版本文件中的sha1值识别所述库文件中发生变化的目标库文件,且对所述目标库文件进行代码编译得到新版本的编译文件;缓存模块:用于基于所述新版本的编译文件,对预设缓存中存储的所述应用程序已发布版本对应的编译文件进行更新,得到应用程序的待发布版本编译文件,将所述应用程序的编译输出路径修改为所述预设缓存中存储所述应用程序编译文件的文件夹;打包模块:用于基于从所述预设缓存中获取到的所述待发布版本编译文件,与所述源代码文件生成待发布版本应用程序文件,且打包所述待发布版本应用程序文件得到打包文件,对所述打包文件进行处理生成应用程序安装文件。
技术总结
本发明涉及数据处理技术领域,揭露一种应用程序安装文件生成方法,包括:获取应用程序待发布版本的源代码文件与多个第三方源代码库文件,基于应用程序已发布版本的第三方源代码的第一版本文件中的sha1值和待发布版本的第三方源代码的第二版本文件中的sha1值识别库文件中发生变化的目标库文件,且对目标库文件进行代码编译得到新版本的编译文件,基于新版本的编译文件更新预设缓存中存储的应用程序已发布版本对应的编译文件,基于源代码文件与预设缓存中的待发布版本编译文件生成待发布版本应用程序文件,打包待发布版本应用程序文件后进行处理生成应用程序安装文件。本发明的应用程序安装文件生成方法通过对文件进行部分重编译,提高了编译效率。提高了编译效率。提高了编译效率。
技术研发人员:肖行 刘海林
受保护的技术使用者:深圳市网旭科技有限公司
技术研发日:2021.11.25
技术公布日:2022/3/8