一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用程序文件的更新方法和装置、存储介质及电子装置与流程

2022-12-20 02:25:09 来源:中国专利 TAG:


1.本技术涉及智慧家庭技术领域,具体而言,涉及一种应用程序文件的更新方法和装置、存储介质及电子装置。


背景技术:

2.目前,随着app ios版本模块化设计的逐步深化,以“壳工程”(ios app主工程,即需要生成.app文件夹的工程)为核心,其他业务功能集成为各个模块为“壳工程”提供各式各样业务能力的架构方式已渐渐成熟稳定。其中,“壳工程”作为架构核心,长期处于相对稳定的状态。但由于ios开发组件的逐步丰富,尤其是ios extension插件功能的引入,为实现某些业务功能时,必须借助于ios extension插件,比如,推送显示缩略图功能。而如需引入ios extension,官方推荐的方式,必须由“壳工程”直接配置,这将频繁的修改“壳工程”,导致ios app目前的开发架构核心“壳工程”进入一种极为不稳定的状态,使得app的后续可持续开发性受到影响。
3.因此,针对相关技术中,在引入功能扩展(即ios extension)的同时无法确保目标应用对应的应用程序文件稳定性的问题,尚未提出有效的解决方案。


技术实现要素:

4.本技术实施例提供了一种应用程序文件的更新方法和装置、存储介质及电子装置,以至少解决相关技术中,在引入功能扩展(即ios extension)的同时无法确保目标应用对应的应用程序文件稳定性的问题。
5.根据本技术实施例的一个实施例,提供了一种应用程序文件的更新方法,包括:在确定对应用程序文件执行功能扩展的情况下,获取待添加功能对应的目标子文件,以及确定辅助所述目标子文件进行文件更新的脚本文件;通过所述脚本文件将所述目标子文件添加至所述应用程序文件对应的插件文件夹,得到目标工程文件,其中,所述插件文件夹用于保存不同业务对应用程序文件进行功能更新的子文件;对所述目标工程文件进行编译,得到目标应用程序文件,将所述目标应用程序文件发送至应用平台进行上线。
6.在一个示例性实施例中,在确定对应用程序文件执行功能扩展的情况下,获取待添加功能对应的目标子文件,以及确定辅助所述目标子文件进行文件更新的脚本文件之后,上述方法还包括:确定当前所述应用程序文件在架构模式下对应的主工程,其中,所述主工程为所述应用程序文件的架构核心;在所述主工程接收到目标对象下发的组合命令的情况下,确定在所述主工程上执行组合编译操作,并运行所述脚本文件,其中,所述组合编译操作用于主动将所有功能对应的文件在主工程上集成。
7.在一个示例性实施例中,通过所述脚本文件将所述目标子文件添加至所述应用程序文件对应的插件文件夹,得到目标工程文件之前,上述方法还包括:通过运行的所述脚本文件访问所述应用程序文件的文件夹信息;在通过所述文件夹信息确定所述应用程序文件未携带插件文件夹的情况下,根据所述目标子文件的文件类型在所述应用程序文件中的文
件目录中创建新的插件文件夹;在通过所述文件夹信息确定所述应用程序文件携带插件文件夹的情况下,识别所述应用程序文件携带插件文件夹对应允许存储的目标文件类型。
8.在一个示例性实施例中,识别所述应用程序文件携带插件文件夹对应允许存储的目标文件类型之后,上述方法还包括:确定所述目标文件类型与所述目标子文件的文件类型的匹配度;在所述匹配度大于等于预设阈值的情况下,向目标对象发送检测提示,其中,所述检测提示用于提示目标对象待添加功能对应的目标子文件与当前应用程序文件存在兼容冲突;在所述匹配度小于预设阈值的情况下,对所述目标子文件执行添加编译操作,其中,所述添加编译操作用于对所述目标子文件进行基础编译,并将完成基础编译的目标子文件复制到所述插件文件夹中。
9.在一个示例性实施例中,对所述目标工程文件进行编译,得到目标应用程序文件,将所述目标应用程序文件发送至应用平台进行上线之后,上述方法还包括以下至少之一:通过运行的所述脚本文件对缓存数据库中未添加至所述目标工程文件中的其他子文件进行清除;生成所述目标应用程序文件的备份文件,将所述备份文件添加至所述缓存数据库中。
10.在一个示例性实施例中,生成所述目标应用程序文件的备份文件,将所述备份文件添加至所述缓存数据库中之后,上述方法还包括:运行所述目标应用程序文件;对所述目标应用程序文件中已完成添加的所述待添加功能执行功能测试;在所述功能测试的结果满足预设结果的情况下,结束对所述应用程序文件执行功能扩展。
11.在一个示例性实施例中,确定辅助所述目标子文件进行文件更新的脚本文件,包括:确定所述目标子文件的获取时间节点;在所述获取时间节点对编写界面的编码信息进行采集,得到脚本参数信息;基于所述脚本参数信息进行文件格式的配置,得到用于辅助所述目标子文件进行文件更新的脚本文件。
12.根据本技术实施例的另一个实施例,还提供了一种应用程序文件的更新装置,包括:获取模块,用于在确定对应用程序文件执行功能扩展的情况下,获取待添加功能对应的目标子文件,以及确定辅助所述目标子文件进行文件更新的脚本文件;添加模块,用于通过所述脚本文件将所述目标子文件添加至所述应用程序文件对应的插件文件夹,得到目标工程文件,其中,所述插件文件夹用于保存不同业务对应用程序文件进行功能更新的子文件;编译模块,用于对所述目标工程文件进行编译,得到目标应用程序文件,将所述目标应用程序文件发送至应用平台进行上线。
13.在一个示例性实施例中,上述装置还包括:第一确定模块,用于确定当前所述应用程序文件在架构模式下对应的主工程,其中,所述主工程为所述应用程序文件的架构核心;在所述主工程接收到目标对象下发的组合命令的情况下,确定在所述主工程上执行组合编译操作,并运行所述脚本文件,其中,所述组合编译操作用于主动将所有功能对应的文件在主工程上集成。
14.在一个示例性实施例中,上述装置还包括:第二确定模块,用于通过运行的所述脚本文件访问所述应用程序文件的文件夹信息;在通过所述文件夹信息确定所述应用程序文件未携带插件文件夹的情况下,根据所述目标子文件的文件类型在所述应用程序文件中的文件目录中创建新的插件文件夹;在通过所述文件夹信息确定所述应用程序文件携带插件文件夹的情况下,识别所述应用程序文件携带插件文件夹对应允许存储的目标文件类型。
15.在一个示例性实施例中,上述第二确定模块还包括:匹配单元,用于确定所述目标文件类型与所述目标子文件的文件类型的匹配度;在所述匹配度大于等于预设阈值的情况下,向目标对象发送检测提示,其中,所述检测提示用于提示目标对象待添加功能对应的目标子文件与当前应用程序文件存在兼容冲突;在所述匹配度小于预设阈值的情况下,对所述目标子文件执行添加编译操作,其中,所述添加编译操作用于对所述目标子文件进行基础编译,并将完成基础编译的目标子文件复制到所述插件文件夹中。
16.在一个示例性实施例中,上述装置还包括以下至少之一:清除模块,用于通过运行的所述脚本文件对缓存数据库中未添加至所述目标工程文件中的其他子文件进行清除;备份模块,用于生成所述目标应用程序文件的备份文件,将所述备份文件添加至所述缓存数据库中。
17.在一个示例性实施例中,上述装置还包括:测试模块,用于运行所述目标应用程序文件;对所述目标应用程序文件中已完成添加的所述待添加功能执行功能测试;在所述功能测试的结果满足预设结果的情况下,结束对所述应用程序文件执行功能扩展。
18.在一个示例性实施例中,上述获取模块还包括:配置单元,用于确定所述目标子文件的获取时间节点;在所述获取时间节点对编写界面的编码信息进行采集,得到脚本参数信息;基于所述脚本参数信息进行文件格式的配置,得到用于辅助所述目标子文件进行文件更新的脚本文件。
19.根据本技术实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述应用程序文件的更新方法。
20.根据本技术实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的应用程序文件的更新方法。
21.在本技术实施例中,在确定对应用程序文件执行功能扩展的情况下,获取待添加功能对应的目标子文件,以及确定辅助目标子文件进行文件更新的脚本文件;通过脚本文件将目标子文件添加至应用程序文件对应的插件文件夹,得到目标工程文件,其中,插件文件夹用于保存不同业务对应用程序文件进行功能更新的子文件;使用预设文件格式对目标工程文件进行编译,得到目标应用程序文件;采用上述技术方案,解决了相关技术中,在引入功能扩展(即ios extension)的同时无法确保目标应用对应的应用程序文件稳定性的问题,通过使用脚本文件在编译时将功能扩展对应的目标子文件添加至应用程序文件对应的插件文件夹,使得可以在不变更应用程序文件对应的应用架构的基础上进行应用功能的扩展,提升了目标应用对应应用程序文件架构稳定性和应用开发的可持续性,避免了对应用程序文件架构的“壳工程”的修改。
附图说明
22.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而
言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
24.图1是本技术实施例的一种应用程序文件的更新方法的硬件环境示意图;
25.图2是根据本技术实施例的应用程序文件的更新方法的流程图;
26.图3是根据本技术实施例的嵌入ios extension交互过程的时序图;
27.图4是根据本技术实施例的一种以shell脚本方式嵌入ios extension到app的方法对应的系统框架;
28.图5是根据本技术实施例的另一种应用程序文件的更新装置的结构框图。
具体实施方式
29.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
30.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
31.根据本技术实施例的一个方面,提供了一种应用程序文件的更新方法。该应用程序文件的更新方法广泛应用于智慧家庭(smart home)、智能家居、智能家用设备生态、智慧住宅(intelligencehouse)生态等全屋智能数字化控制应用场景。可选地,在本实施例中,上述应用程序文件的更新方法可以应用于如图1所示的由终端设备102和服务器104所构成的硬件环境中。如图1所示,服务器104通过网络与终端设备102进行连接,可用于为终端或终端上安装的客户端提供服务(如应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器104提供数据存储服务,可在服务器上或独立于服务器配置云计算和/或边缘计算服务,用于为服务器104提供数据运算服务。
32.上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:wifi(wireless fidelity,无线保真),蓝牙。终端设备102可以并不限定于为pc、手机、平板电脑、智能空调、智能烟机、智能冰箱、智能烤箱、智能炉灶、智能洗衣机、智能热水器、智能洗涤设备、智能洗碗机、智能投影设备、智能电视、智能晾衣架、智能窗帘、智能影音、智能插座、智能音响、智能音箱、智能新风设备、智能厨卫设备、智能卫浴设备、智能扫地机器人、智能擦窗机器人、智能拖地机器人、智能空气净化设备、智能蒸箱、智能微波炉、智能厨宝、智能净化器、智能饮水机、智能门锁等。
33.在本实施例中提供了一种应用程序文件的更新方法,应用于上述计算机终端,图2是根据本技术实施例的应用程序文件的更新方法的流程图,该流程包括如下步骤:
34.步骤s202,在确定对应用程序文件执行功能扩展的情况下,获取待添加功能对应的目标子文件,以及确定辅助所述目标子文件进行文件更新的脚本文件;
35.步骤s204,通过所述脚本文件将所述目标子文件添加至所述应用程序文件对应的插件文件夹,得到目标工程文件,其中,所述插件文件夹用于保存不同业务对应用程序文件进行功能更新的子文件;
36.步骤s206,对所述目标工程文件进行编译,得到目标应用程序文件,将所述目标应用程序文件发送至应用平台进行上线。
37.可以理解的是,为了保证最终确定出的目标应用程序文件符合实际的应用开发要求,在编译携带有扩展功能对应目标子文件的目标工程文件时,确认之前应用程序文件实际应用的应用环境或者目标应用文件待工作的应用环境,根据应用环境在数据库中预先配置的环境格式列表中确定与当前应用环境对应的预设文件格式,其中,预先配置的环境格式中存储有多组应用环境与预设文件格式的对应关系,使得通过预设文件格式编译后的目标工程文件可以快速进行应用上线。
38.通过上述步骤,在确定对应用程序文件执行功能扩展的情况下,获取待添加功能对应的目标子文件,以及确定辅助目标子文件进行文件更新的脚本文件;通过脚本文件将目标子文件添加至应用程序文件对应的插件文件夹,得到目标工程文件,其中,插件文件夹用于保存不同业务对应用程序文件进行功能更新的子文件;使用预设文件格式对目标工程文件进行编译,得到目标应用程序文件;采用上述技术方案,解决了相关技术中,在引入功能扩展(即ios extension)的同时无法确保目标应用对应的应用程序文件稳定性的问题,通过使用脚本文件在编译时将功能扩展对应的目标子文件添加至应用程序文件对应的插件文件夹,使得可以在不变更应用程序文件对应的应用架构的基础上进行应用功能的扩展,提升了目标应用对应应用程序文件架构稳定性和应用开发的可持续性,避免了对应用程序文件架构的“壳工程”的修改。
39.在一个示例性实施例中,在确定对应用程序文件执行功能扩展的情况下,获取待添加功能对应的目标子文件,以及确定辅助所述目标子文件进行文件更新的脚本文件之后,上述方法还包括:确定当前所述应用程序文件在架构模式下对应的主工程,其中,所述主工程为所述应用程序文件的架构核心;在所述主工程接收到目标对象下发的组合命令的情况下,确定在所述主工程上执行组合编译操作,并运行所述脚本文件,其中,所述组合编译操作用于主动将所有功能对应的文件在主工程上集成。
40.可以理解的是,上述应用程序文件通过进入架构模式(如:壳工程编辑对应的模式),可以通过确定架构模式下的主工程,并在主工程中存在目标对象下发的用于在主工程上集成其他功能的组合命令时,利用脚本文件的运行执行组合编译操作,将主工程与其他功能进行融合。
41.在一个示例性实施例中,通过所述脚本文件将所述目标子文件添加至所述应用程序文件对应的插件文件夹,得到目标工程文件之前,上述方法还包括:通过运行的所述脚本文件访问所述应用程序文件的文件夹信息;在通过所述文件夹信息确定所述应用程序文件未携带插件文件夹的情况下,根据所述目标子文件的文件类型在所述应用程序文件中的文件目录中创建新的插件文件夹;在通过所述文件夹信息确定所述应用程序文件携带插件文件夹的情况下,识别所述应用程序文件携带插件文件夹对应允许存储的目标文件类型。
42.可以理解的是,在将目标子文件添加至应用程序文件对应的插件文件夹时,还需要对应用程序文件是否携带插件文件夹进行识别,当应用程序文件中不存子插件文件夹的情况下,需要主动创建新的插件文件夹用于保存目标子文件,并且由于插件文件夹存在可存储目标文件类型的要求,因此,还需要确定当前目标子文件是否符合插件文件夹对应允许存储的目标文件类型,以保证存储至插件文件夹中的目标子文件可以正常使用。
43.在一个示例性实施例中,识别所述应用程序文件携带插件文件夹对应允许存储的目标文件类型之后,上述方法还包括:确定所述目标文件类型与所述目标子文件的文件类型的匹配度;在所述匹配度大于等于预设阈值的情况下,向目标对象发送检测提示,其中,所述检测提示用于提示目标对象待添加功能对应的目标子文件与当前应用程序文件存在兼容冲突;在所述匹配度小于预设阈值的情况下,对所述目标子文件执行添加编译操作,其中,所述添加编译操作用于对所述目标子文件进行基础编译,并将完成基础编译的目标子文件复制到所述插件文件夹中。
44.在一个示例性实施例中,对所述目标工程文件进行编译,得到目标应用程序文件,将所述目标应用程序文件发送至应用平台进行上线之后,上述方法还包括以下至少之一:通过运行的所述脚本文件对缓存数据库中未添加至所述目标工程文件中的其他子文件进行清除;生成所述目标应用程序文件的备份文件,将所述备份文件添加至所述缓存数据库中。
45.简单来说,为了避免缓存数据库中在编译过程中出现大量无效子文件,即在编译过程中并为应用的子文件,使得缓存数据库的空间被过多占用,导致处理效率降低,因此,还可以通过运行脚本文件对缓存数据库中未添加至目标工程文件中的其他子文件进行清除,保证缓存数据库存储数据的效率,并且为了避免目标应用程序文件在生成后出现异常情况,产生数据丢失,在生成目标应用程序文件之后还可以对其进行备份,得到备份文件,将备份文件添加至缓存数据库中,保证后续在预设周期内的目标应用程序文件的使用,利用备份文件可以及时对目标应用程序文件产生的数据丢失进行补充修复。
46.在一个示例性实施例中,生成所述目标应用程序文件的备份文件,将所述备份文件添加至所述缓存数据库中之后,上述方法还包括:运行所述目标应用程序文件;对所述目标应用程序文件中已完成添加的所述待添加功能执行功能测试;在所述功能测试的结果满足预设结果的情况下,结束对所述应用程序文件执行功能扩展。
47.即为了保证待添加功能在目标应用程序文件中的完整添加,在对目标应用程序文件完成备份之后,还可以通过运行目标应用程序文件对待添加功能执行功能测试,并比较功能测试的结果与预设结果的匹配度,确定待添加功能是否成功添加,并在成功添加的情况下,结束对应用程序文件执行功能扩展,在未成功添加的情况下,保持对应用程序文件执行功能扩展。
48.在一个示例性实施例中,确定辅助所述目标子文件进行文件更新的脚本文件,包括:确定所述目标子文件的获取时间节点;在所述获取时间节点对编写界面的编码信息进行采集,得到脚本参数信息;基于所述脚本参数信息进行文件格式的配置,得到用于辅助所述目标子文件进行文件更新的脚本文件。
49.为了更好的理解上述应用程序文件的更新方法的过程,以下再结合可选实施例对上述应用程序文件的更新的实现方法流程进行说明,但不用于限定本技术实施例的技术方
案。
50.随着ios extension功能的引入,ios app开发中众多功能都需要依赖于ios extension。而目前ios app架构方式,比较主流的方式,即以“壳工程”为核心,其他业务功能建立热插拔模块服务于“壳工程”,业务功能模块处于“不稳定,易修改”状态,而“壳工程”处于“相对稳定”的状态,业务模块开发人员不再关心整个app如何集成,而专心于单个业务模块的开发。但需要完成依赖ios extension而开发的功能时,上述app架构方式将会变得不再稳定,可靠,开发人员无法再无视“壳工程”的存在,导致开发过程变得复杂,困难。为了使“壳工程”在业务功能模块的开发过程中透明化,使得开发人员在开发业务功能模块时,只关心所开发的业务本身,使得开发过程回归单一,简单的流程。
51.换而言之,随着ios app模块化设计的逐步深化,以“壳工程”为核心,其他业务功能集成为各个模块为“壳工程”提供各式各样业务能力的架构方式被广泛应用。“壳工程”的相对稳定对于架构本身与开发者而言至关重要。ios extension的出现将打破此架构“壳工程”的稳定性。
52.作为一种可选的实施方式,通过采用脚本方式,在ios app在编译时,动态将ios extension嵌入到目标工程.app(即编译app时产生的集成资源与可执行文件的文件夹)文件夹中,从而在不修改“壳工程”的前提下,集成ios extension所提供的功能,实现app应用功能的快速扩展。
53.例如,利用shell脚本在编译时,动态嵌入ios extension使得上述app架构重新回到相对稳定的环境。不再需要在添加ios extension时频繁修改“壳工程”,业务模块开发者更专注于业务开发本身。为app架构稳定性和可持续性提供了更为有利的条件。
54.可选的,在本实施例中提供了一种以shell脚本方式嵌入ios extension到app的方法,通过利用shell脚本技术,在ios app工程编译时,将已编译好的ios extension嵌入到目标app的.app文件夹中。使得“壳工程”在开发中,继续维持稳定,可靠的状态,业务模块开发人员专注于业务开发本身,不再关注“壳工程”。维持以“壳工程”为核心,其他业务功能集成为各个模块为“壳工程”提供各式各样业务能力的架构方式稳定可靠。
55.可选的,图3是根据本技术实施例的嵌入ios extension交互过程的时序图。在业务模块工程中添加相关ios extension,并进行编译,将编译好的ios extension放入业务模块中,通过cocoapods集成工具,一并集成入“壳工程”。随后,在编译“壳工程”过程中,通过shell脚本动态嵌入ios extension,即利用shell将其嵌入到“壳工程”.app文件夹中,即可实现ios extension快速添加,如图3所示,具体运行过程如下:
56.步骤一、业务模块工程添加ios extension(相当于本发明实施例中的待添加功能),并进行编译。将编译好的ios extension放入业务模块工程中,配置podspec使编译好的ios extension可通过cocoapods集成到“壳工程”。编写shell脚本(相当于本发明实施例中的脚本文件),放入业务模块工程中,配置相关podspec,使shell脚本文件可通过cocoapods集成到“壳工程”,并且在“壳工程”编译时得以运行。
57.可选的,当目标对象(如:开发人员)在“壳工程”目录下运行cocoapods的pod install命令时,开启集成所有业务模块到“壳工程”的过程。
58.步骤二、当在“壳工程”目录下运行xcodebuild时对“壳工程”进行编译,编译工具自动运行shell脚本。需要说明的是,上述shell脚本可以根据实际应用要求灵活编写,在编
写完成后通过配置相关文件格式podspec得到,本技术对此不作过多限定。
59.步骤三、shell脚本访问文件系统,查询“壳工程”.app文件夹是否存在,若不存在创建“壳工程”的.app文件夹。
60.步骤四、shell脚本访问文件系统,查询“壳工程”的.app文件夹中是否存在plugins文件夹,若不存在创建plugins文件夹(相当于本发明实施例中的插件文件夹)。
61.步骤五、shell脚本访问将编译好的ios extension复制到plugins文件夹中。
62.步骤六、shell脚本清除“壳工程”编译缓存中冗余的ios extension。10.编译完成即可获得具备ios extension功能的ipa文件(相当于本发明实施例中的应用程序文件)。
63.作为一种可选的实施方式,图4是根据本技术实施例的一种以shell脚本方式嵌入ios extension到app的方法对应的系统框架,整个结构基本分为四个部分,xcodebuild,cocoapods,壳工程以及业务模块工程。其中,xcodebuild和cocoapods为外部工具依赖。xcodebuild主要用于ios工程的编译打包工作。cocoapods主要实现将“壳工程”与各个业务模块工程集成起来。开发时,在业务模块工程中添加ios extension,并将ios extension编译完成,放入业务模块工程中,配置业务模块工程podspec,使编译好的ios extension作为资源,能够被其他依赖业务模块工程的工程所引入。同时,编写shell脚本文件,也放入业务模块工程中,同样配置业务模块工程podspec,使shell脚本可作为资源被其他依赖业务模块工程的工程所引入。完成之后,即可使用cocoapods工具对“壳工程”进行各业务模块集成。集成完成后,最后使用xcodebuild工具对“壳工程”进行编译,编译时,xcodebuild会自动运行shell脚本文件,脚本的主要作用就是将业务模块工程中编译后的ios extension复制到“壳工程”的.app文件夹中。编译完成后,即可获得集成ios extension功能的ios ipa文件。
64.本实施例能够在app编译过程中,利用shell脚本动态嵌入ios extension。不再频繁改动“壳工程”,使得“壳工程”形态更加稳定,业务模块开发更加专注。
65.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例的方法。
66.图5是根据本技术实施例的一种应用程序文件的更新装置的结构框图。如图5所示,包括:
67.获取模块52,用于在确定对应用程序文件执行功能扩展的情况下,获取待添加功能对应的目标子文件,以及确定辅助所述目标子文件进行文件更新的脚本文件;
68.添加模块54,用于通过所述脚本文件将所述目标子文件添加至所述应用程序文件对应的插件文件夹,得到目标工程文件,其中,所述插件文件夹用于保存不同业务对应用程序文件进行功能更新的子文件;
69.编译模块56,用于对所述目标工程文件进行编译,得到目标应用程序文件,将所述目标应用程序文件发送至应用平台进行上线。
70.通过上述装置,在确定对应用程序文件执行功能扩展的情况下,获取待添加功能
对应的目标子文件,以及确定辅助目标子文件进行文件更新的脚本文件;通过脚本文件将目标子文件添加至应用程序文件对应的插件文件夹,得到目标工程文件,其中,插件文件夹用于保存不同业务对应用程序文件进行功能更新的子文件;使用预设文件格式对目标工程文件进行编译,得到目标应用程序文件;采用上述技术方案,解决了相关技术中,在引入功能扩展(即ios extension)的同时无法确保目标应用对应的应用程序文件稳定性的问题,通过使用脚本文件在编译时将功能扩展对应的目标子文件添加至应用程序文件对应的插件文件夹,使得可以在不变更应用程序文件对应的应用架构的基础上进行应用功能的扩展,提升了目标应用对应应用程序文件架构稳定性和应用开发的可持续性,避免了对应用程序文件架构的“壳工程”的修改。
71.在一个示例性实施例中,上述装置还包括:第一确定模块,用于确定当前所述应用程序文件在架构模式下对应的主工程,其中,所述主工程为所述应用程序文件的架构核心;在所述主工程接收到目标对象下发的组合命令的情况下,确定在所述主工程上执行组合编译操作,并运行所述脚本文件,其中,所述组合编译操作用于主动将所有功能对应的文件在主工程上集成。
72.在一个示例性实施例中,上述装置还包括:第二确定模块,用于通过运行的所述脚本文件访问所述应用程序文件的文件夹信息;在通过所述文件夹信息确定所述应用程序文件未携带插件文件夹的情况下,根据所述目标子文件的文件类型在所述应用程序文件中的文件目录中创建新的插件文件夹;在通过所述文件夹信息确定所述应用程序文件携带插件文件夹的情况下,识别所述应用程序文件携带插件文件夹对应允许存储的目标文件类型。
73.在一个示例性实施例中,上述第二确定模块还包括:匹配单元,用于确定所述目标文件类型与所述目标子文件的文件类型的匹配度;在所述匹配度大于等于预设阈值的情况下,向目标对象发送检测提示,其中,所述检测提示用于提示目标对象待添加功能对应的目标子文件与当前应用程序文件存在兼容冲突;在所述匹配度小于预设阈值的情况下,对所述目标子文件执行添加编译操作,其中,所述添加编译操作用于对所述目标子文件进行基础编译,并将完成基础编译的目标子文件复制到所述插件文件夹中。
74.在一个示例性实施例中,上述装置还包括以下至少之一:清除模块,用于通过运行的所述脚本文件对缓存数据库中未添加至所述目标工程文件中的其他子文件进行清除;备份模块,用于生成所述目标应用程序文件的备份文件,将所述备份文件添加至所述缓存数据库中。
75.在一个示例性实施例中,上述装置还包括:测试模块,用于运行所述目标应用程序文件;对所述目标应用程序文件中已完成添加的所述待添加功能执行功能测试;在所述功能测试的结果满足预设结果的情况下,结束对所述应用程序文件执行功能扩展。
76.在一个示例性实施例中,上述获取模块还包括:配置单元,用于确定所述目标子文件的获取时间节点;在所述获取时间节点对编写界面的编码信息进行采集,得到脚本参数信息;基于所述脚本参数信息进行文件格式的配置,得到用于辅助所述目标子文件进行文件更新的脚本文件。
77.本技术的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
78.可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程
序代码:
79.s1,在确定对应用程序文件执行功能扩展的情况下,获取待添加功能对应的目标子文件,以及确定辅助所述目标子文件进行文件更新的脚本文件;
80.s2,通过所述脚本文件将所述目标子文件添加至所述应用程序文件对应的插件文件夹,得到目标工程文件,其中,所述插件文件夹用于保存不同业务对应用程序文件进行功能更新的子文件;
81.s3,对所述目标工程文件进行编译,得到目标应用程序文件,将所述目标应用程序文件发送至应用平台进行上线。
82.本技术的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
83.可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
84.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
85.s1,在确定对应用程序文件执行功能扩展的情况下,获取待添加功能对应的目标子文件,以及确定辅助所述目标子文件进行文件更新的脚本文件;
86.s2,通过所述脚本文件将所述目标子文件添加至所述应用程序文件对应的插件文件夹,得到目标工程文件,其中,所述插件文件夹用于保存不同业务对应用程序文件进行功能更新的子文件;
87.s3,对所述目标工程文件进行编译,得到目标应用程序文件,将所述目标应用程序文件发送至应用平台进行上线。
88.可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
89.可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
90.显然,本领域的技术人员应该明白,上述的本技术的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术不限制于任何特定的硬件和软件结合。
91.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献