CN110333868A - 用于生成子应用的安装包的方法和系统 - Google Patents

用于生成子应用的安装包的方法和系统 Download PDF

Info

Publication number
CN110333868A
CN110333868A CN201910506669.0A CN201910506669A CN110333868A CN 110333868 A CN110333868 A CN 110333868A CN 201910506669 A CN201910506669 A CN 201910506669A CN 110333868 A CN110333868 A CN 110333868A
Authority
CN
China
Prior art keywords
application
server
source code
installation kit
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910506669.0A
Other languages
English (en)
Other versions
CN110333868B (zh
Inventor
吴雷君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910506669.0A priority Critical patent/CN110333868B/zh
Publication of CN110333868A publication Critical patent/CN110333868A/zh
Application granted granted Critical
Publication of CN110333868B publication Critical patent/CN110333868B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种用于生成子应用的安装包的方法,所述子应用被包括在父应用中,所述子应用能够独立于所述父应用的其余部分被更新,所述子应用依赖于与所述父应用相关联的API授权,所述方法包括:通过服务器接收来自开发者设备的源代码;通过所述服务器编译所述源代码以生成可运行包;通过所述服务器对所述可运行包进行API授权;以及通过所述服务器基于所述可运行包生成所述子应用的安装包。本申请还公开了用于生成子应用的安装包的服务器和系统。本申请能够提升子应用安装包生成过程的安全性和灵活性。

Description

用于生成子应用的安装包的方法和系统
技术领域
本发明涉及应用的子应用,尤其涉及用于生成子应用的安装包的方法和系统。
背景技术
目前,动态应用得到了广泛的应用。在动态应用中,父应用通常包括一个或多个子应用,子应用常常依赖于父应用的API授权来执行,而且子应用通常能独立于父应用的主体和其它子应用被安装和/或更新。常见的动态应用技术的示例包括但不限于小程序技术、RN(ReactNative)应用、离线H5(HTML5)应用等。例如,手机支付宝以及微信等广泛采用了小程序技术,在此类技术中,小程序是手机支付宝以及微信等父应用的子应用,而且能够被独立地安装和/或更新。
许多动态应用采用了离线化技术。也就是说,子应用被提前安装到用户本地,使得无需网络加载即可使用子应用。因此,需要生成子应用的安装包。
然而,现有的用于生成子应用的安装包的方案通常在安全性和灵活性上存在改善空间。
发明内容
为了克服现有技术的缺陷,本发明提供了用于生成子应用的安装包的技术方案。
本发明通过以下技术方案来实现其上述目的。
在本发明的一个方面中,公开了一种用于生成子应用的安装包的方法,其特征在于,所述子应用被包括在父应用中,所述子应用能够独立于所述父应用的其余部分被更新,所述子应用依赖于与所述父应用相关联的API授权,所述方法包括:通过服务器接收来自开发者设备的源代码;通过所述服务器编译所述源代码以生成可运行包;通过所述服务器对所述可运行包进行API授权;以及通过所述服务器基于所述可运行包生成所述子应用的安装包。
优选地,在接收所述源代码时执行入口检查,所述入口检查确保所述源代码和所述子应用的对应关系。
优选地,在编译所述源代码之前由所述服务器对所述源代码执行安全前置检查,所述安全前置检查确保所述源代码不包含非法代码。
优选地,由所述服务器编译所述经打包的源代码包括由所述服务器分析所述源代码中的文件大小、数量和依赖关系。
优选地,由所述服务器编译所述源代码包括对所述源代码执行合并和/或优化。
优选地,由所述服务器对所述可运行包进行API授权避免开发者获得高于与所述子应用相对应的权限的权限。
优选地,在对所述可运行包进行API授权之后由所述服务器对所述子应用执行加密。
优选地,所述安装包具有专用于所述动态应用的特定文件格式。
优选地,所述安装包是采用增量更新逻辑生成的。
优选地,在对所述可运行包进行API授权之后对所述子应用执行安全后置检查,所述安全后置检查确保所生成的安装包为可信安装包。
优选地,所述安全后置检查包括在真机环境下测试所述安装包。
优选地,所述方法还包括在云端存储所述安装包以供用户下载。
优选地,所述源代码是由所述开发者设备打包的源代码。
在本发明的又一方面中,提供了一种用于生成子应用的安装包的服务器,所述子应用被包括在父应用中,所述子应用能够独立于所述父应用的其余部分被更新,所述子应用依赖于与所述父应用相关联的API授权,所述服务器包括:接收模块,所述接收模块被配置成接收来自开发者设备的源代码;编译构建模块,所述编译模块被配置成编译构建所述源代码以生成可运行包;API授权模块,所述API授权模块被配置成对所述可运行包进行API授权;以及安装包生成模块,所述安装包生成模块被配置成基于所述可运行包生成所述子应用的安装包。
在本发明的另一方面中,提供了一种用于生成子应用的安装包的系统,所述子应用被包括在父应用中,所述子应用能够独立于所述父应用的其余部分被更新,所述子应用依赖于与所述父应用相关联的API授权,所述系统包括:开发者设备,所述开发者设备被配置为:生成源代码;将所述源代码上传到服务器;以及服务器,所述服务器被配置为:接收来自开发者设备的源代码;通过所述服务器编译所述源代码以生成可运行包;通过所述服务器对所述可运行包进行API授权;以及通过所述服务器基于所述可运行包生成所述子应用的安装包。
在本发明的又一方面中,公开了一种存储指令的计算机可读存储介质,所述指令当被计算机执行时,使所述计算机执行上述方法。
在本发明的再一方面中,公开了一种计算机系统,所述计算机系统包括用于执行上述方法的装置。
与现有技术相比,本发明可具有如下有益效果:
本发明能够为多种类型的子应用提供更新方法而不限于特定类型的子应用,从而具有更大的普适性;
本发明通过在云端执行子应用的打包和安全检查,从而提升了安全性;以及
本发明能够在服务器端按需对子应用进行各种处理,具有更好的灵活性。
当然,实施本申请的任一技术方案无需同时达到所有上述技术效果。
附图说明
本发明的以上发明内容以及下面的具体实施方式在结合附图阅读时会得到更好的理解。需要说明的是,附图仅作为所请求保护的发明的示例。在附图中,相同的附图标记代表相同或类似的元素。
图1是示出根据本发明的实施例的用于安装和/或更新子应用的系统的框图。
图2是示出根据本发明的实施例的用于生成子应用的安装包的服务器的框图。
图3是示出根据本发明的实施例的用于生成子应用的安装包的方法的流程图。
具体实施方式
以下在具体实施方式中详细叙述本发明的详细特征以及优点,其内容足以使任何本领域技术人员了解本发明的技术内容并据以实施,且根据本说明书所揭露的说明书、权利要求及附图,本领域技术人员可轻易地理解本发明相关的目的及优点。
如同上面介绍的,在动态应用技术中,父应用通常包括一个或多个子应用,子应用常常依赖于父应用的API授权来执行,而且子应用通常能独立于父应用的主体和其它子应用被安装和/或更新。
为了提升子应用安装包生成过程的灵活性和安全性,本发明公开了一种由服务器编译并构建源代码以生成子应用的安装包的技术方案。
在后文中,首先参考附图1介绍根据本发明的系统的概览,然后参考附图2介绍根据本发明的服务器的框图,最后参考附图3介绍根据本发明的用于生成子应用的安装包的方法。
系统概览
参见附图1,其中示出了根据本发明的实施例的用于安装和/或更新子应用的系统100的框图。系统100可包括服务器102以及开发者设备104。
开发者设备104由开发者使用来编写编写子应用的源代码。
在有些情况下,在开发者开发子应用之前,需要先申请开发者账号。例如,开发者可向服务器提交个人的信息,例如主体性质、身份资料、联系方式等。子应用的管理员可根据开发者的信息赋予开发者相应的权限,例如指定该开发者可利用的资源,例如API接口的种类和数量、该开发者可从父应用获得的信息等级、用户的最大数量等。
此外,在有些情况下,在开发者开发子应用之前,还可以申请子应用的ID。例如,开发者可指定想要的子应用的ID或名称等,也可由服务器或管理员分配子应用的ID。此外,还可由开发者申请或由服务器或管理员指定该子应用可利用的资源等。
一般而言,开发者可采用任何开发环境和开发工具来编写源代码。替代地,开发者可采用专用IDE(集成开发环境)来编写源代码。例如,在支付宝小程序的示例中,开发者可从蚂蚁金服开发平台上下载小程序开发者工具,并采用该小程序开发者工具来编写源代码。通常,源代码将按照由动态应用指定的格式来开发和调试,以便与动态应用集成在一起。例如,动态应用平台可发布代码编写规范,以指定开发者在开发子应用时应当采取的代码格式。此外,动态应用平台还可提供模板,以便于开发者在模板基础上更方便地编写源代码。
以下以支付宝小程序为例,介绍子应用源代码的示例:
支付宝小程序的源代码可分为app和page两个目录,其中app用来描述整体程序,page用来描述各个页面。
app由三个文件组成,必须放在项目的根目录。
page由四个文件组成,分别是:
此外,动态应用平台还可规定上面的一个或多个文件中的代码的结构。
注意,上面仅仅是源代码的格式的一种示例,其目的是解释而不构成任何限制。
源代码中可采用由动态应用平台提供的API。例如,该API可包括例如关于呈现用户界面的接口、用于用户交互的接口、以及访问各种资源的接口等。例如,该API可被来访问与该动态应用相关联的资源。例如,支付宝小程序源代码可采用由蚂蚁金服开放平台提供的API,并可访问与支付宝相关联的资源,例如某些用户信息(例如用户名、用户昵称、用户等级等)。该小程序所能访问的资源通常受到动态应用平台的约束,并且可能需要在使用之前得到用户的授权。
优选地,开发者在生成子应用的源代码之后,可将源代码打包。通常,开发者应当按照由动态应用平台指定的格式来将源代码打包。在一些实施例中,可不包括将源代码打包的步骤。
随后,开发者可通过开发者设备将源代码(例如经打包的源代码)上传到服务器102。例如,在用户使用由动态应用平台提供的开发工具时,可采用该开发工具提供的上传功能来上传源代码。例如,在使用小程序开发者工具开发小程序时,用户可点击该小程序开发者工具界面上的“上传”控件来上传小程序。在其它示例中,用户可用其它方式来上传子应用的源代码,例如在由动态应用平台指定的网页上上传源代码。
服务器102在接收到来自开发者设备的源代码之后,将对源代码执行构建以生成子应用的可运行包,并对子应用进行API授权,并生成子应用的安装包。服务器102还可执行其它操作,诸如入口检查、安全检查、压缩加密、云端存储等等。关于服务器102的操作的更多细节将在下面更详细地描述。
系统100还可包括用户设备106。用户设备106是安装并使用父应用和子应用的设备。
用户可通过用户设备106获得相应的子应用列表,并可按需加载子应用。例如,当用户在用户设备106上使用父应用时,可在父应用的界面上显示子应用的列表。替代地,用户还可搜索子应用。用户可点击子应用列表中或搜索结果中的任何子应用以便启动该子应用。当该子应用尚未被安装或者需要被更新时,父应用可动态地下载和/或更新子应用。在该子应用已经被安装和/或更新后,该子应用可被启动。子应用启动时,可向用户呈现向该子应用进行授权的请求。例如可向用户呈现授权子应用访问用户信息(例如用户名称、用户头像等)的请求。在用户同意该请求后,子应用可利用由父应用提供的用户信息来执行该子应用的操作。
优选地,用户还可通过用户设备106验证所下载的安装包是否为可信安装包。例如,父应用可验证子应用的安装包的签名是否为有效签名,只有当该签名为有效签名时,确定该安装包为可信安装包,从而可使用该安装包执行子应用的安装;否则,可不执行子应用的安装。
服务器结构
参见图2,其示出了根据本发明的实施例的用于生成子应用的安装包的服务器102的框图。
服务器102可包括代码接收模块202。代码接收模块202接收来自开发者设备104的源代码。例如,代码接收模块202可从动态应用平台提供的开发工具直接接收源代码。替代地,代码接收模块202可经由网页、FTP服务器或其他方式接收由开发者上传的源代码。通常,如同上面所述,所接收的源代码的文件结构是由动态应用平台指定的,从而方便后续处理。
优选地,代码接收模块202可包括解压缩模块204。当所接收的源代码是经打包的源代码时,解压缩模块204可将经打包的源代码解压缩,以供后续处理。例如,当开发者使用由动态应用平台提供的开发工具时,该开发工具可提供压缩功能,以便按照特定压缩方式将源代码打包。在此情况下,解压缩模块204可按照相应的解压方式来将源代码解压缩。
优选地,代码接收模块202还可包括入口检查模块206。入口检查模块206可对所接收的源代码进行检查,以屏蔽掉无名氏请求。无名氏请求包括但不限于非法攻击请求、入参缺失的异常请求、无子应用开发者权限的异常用户请求等。例如,入口检查模块206中可存储相应的入口检查规则,并可根据所存储的入口检查规则来对源代码进行检查,从而识别源代码中包括的无名氏请求。
入口检查模块206还可确保源代码和子应用的一对一关系。这以确保子应用开发者的源代码和其他子应用隔离,增加安全性。例如,入口检查模块206可提取源代码中所包括的子应用的ID,并可确定源代码中的子应用的ID是否与所要上传的子应用的ID一致。此外,入口检查模块206还可提取源代码中所包括的子应用的版本号,并可确定该版本号是否是对该子应用的更新。例如,可确定源代码中的子应用的版本号是否大于已部署的子应用的版本号。
优选地,服务器102还可包括可选的安全前置检查模块208。安全前置检查模块208可对所接收的源代码执行安全前置检查。所述安全前置检查可提供入口检查对身份验证之外的更细致的检查,以确保开发者所提交的内容不包含非法代码。例如,所述入口检查可包括但不限于违禁词检查、恶意代码检查、安全漏洞检查等对非法代码的检查。例如,安全前置检查模块可维护违禁词列表,并检索源代码以确保源代码中不包括违禁词列表中的任何词语。又例如,安全前置检查可按任何已知方式检查源代码中是否包括恶意代码和/或安全漏洞。
优选地,服务器102可包括代码分析模块210,代码分析模块212可对源代码进行分析。例如,代码分析模块212可对源代码的文件进行统计和分析。例如,代码分析模块212可以对源代码中不同类型的文件的数量、大小、依赖关系等进行分析,提供分布占比、特殊大文件提示等服务,从而帮助子应用开发者更高效地诊断和/或优化代码。例如,代码分析模块212可向用户传送大文件的提示,以帮助用户优化源代码。又例如,代码分析模块212可向用户传送源代码中的依赖关系,并由开发者设备呈现所述依赖关系(例如以可视化方式呈现)。
优选地,服务器102还可包括优化合并模块212。优化合并模块214可对源代码进行优化和/或合并。例如,可以根据代码依赖关系完成文件合并。又例如,可以优化代码中的重复调用,对风险语法自动提供降级的保护代码等等。可以理解,也可采用本领域公知的任何其它方式来执行代码优化以及合并。例如,开发者在编写源代码时,经常使用import、require等语法定义组件层面的依赖关系。此外,所开发的子应用中可能使用到各种资源(例如图标(icon)和图片等)。优化合并模块212可分析源代码中定义的依赖关系,并对其进行优化和/或合并,同时也可去除一些未被使用的依赖,从而减少代码的大小并提升执行效率。
服务器102还可包括编译构建模块214。编译构建模块210可对源代码进行编译构建,以生成子应用的可运行包。子应用的可运行包稍后可在动态应用的容器环境中运行。例如,由于源代码是使用由动态应用平台规定的格式编写的,所以服务器102可采用固定的构建配置来执行构建。替代地,可由开发者上传构建配置,并由服务器102基于由开发者提供的构建配置来执行构建。在构建时,根据需要,可执行单元测试或集成测试。对本领域技术人员而言,如何对源代码进行编译构建以形成可运行包是公知的,在此不再详述。
服务器102还可包括API授权模块216。通过API授权,可避免子应用的开发者获得高于与该子应用相对应的权限的权限。例如,通过API权限的分级及分开管理,可确保常规开发者只能获得基础的操作权限而无法拿到高风险等级的权限,或者可确保开发者按需申请后平台根据开发者可信度进行授权以及权限回收,从而提高了动态应用的安全性。例如,API授权模块216可查询(例如向动态应用平台查询)相应子应用的权限。该权限例如可以是在创建子应用时申请并获得批准的权限。随后,API授权模块216可基于所查询到的权限创建授权文件(例如api_permission文件),并将授权文件注入安装包中。该授权文件可描述该子应用的权限信息。通过在子应用的安装包中包括授权文件,当随后在运行子应用时,动态应用可实时校验是否有该API的权限,而避免再进行服务器验证。优选地,还可设置安全开关。
优选地,服务器102还可包括加密模块218。加密模块218可在对所述可运行包进行API授权之后由所述服务器102对所述子应用执行加密。执行加密可确保子应用的安装包不被破解或改变。优选地,可执行一次或多次加密。例如,第一次加密可由服务器102自身执行。此时,服务器102可对可运行包的文件流进行读取,使用特定加密方法来生成待签名字符串。例如,较长字节长度的文件流可被处理成较短字符串的待签名字符串(例如可通过HASH算法(如MD5、SHA1、HAVAL、SM3等)获得消息摘要(文件流会被处理成固定较短长度的字符串)),随后可对消息摘要进行加密,所述加密方式包括但不限于DES、3DES、AES、BASE64等。又例如,第二次加密可以通过以下方式执行:服务器102可与高加密等级专用服务器通信,高加密等级专用服务器可使用私钥来针对安装包生成签名文件,随后服务器102可将所生成的签名文件添加到安装包中。例如,服务器102可使用私钥生成CERT.JSON文件和SIGN.JSON文件并将这两个文件添加到安装包中。CERT.JSON和SIGN.JSON都是证书签名文件,其中CERT.JSON是本地密钥签名文件;而SIGN.JSON是动态密钥签名文件。
在后续过程中,当客户端设备对安装包进行解密时,可解析本地安装包文件,以便获得CERT.JSON文件和SIGN.JSON文件。在客户端设备处,通常可使用两种密钥,第一种密钥是缓存在本地的老公钥,客户端设备可使用该公钥来验证CERT.JSON;第二种密钥是从服务器请求得到的经动态更新的实时公钥,客户端设备可使用该实时公钥来验证SIGN.JSON。在一般情况下,这两个公钥是一致的。在一些特殊情况下,两个公钥也可能不一致。例如,在一种情况下,老密钥泄露,服务器临时替换了新密钥,在此情况下,就可以启用更高级的密钥验证策略。又例如,在服务器连接失败的情况下,可默认使用本地缓存的密钥进行解压提升验证效率,而不用持续等待服务端返回。对安装包进行加密(以及包括进行压缩)可以确保安装包即便被非法获取,也无法被修改,从而增加了系统的安全性。
服务器102还可包括安装包生成模块220。该安装包生成模块220可基于子应用的可运行包生成子应用的安装包。例如,所生成的安装包除包括可运行包,还可包括API授权文件和其它资源等,其具体目录结构可参考下面的描述。优选地,在生成安装包时可采用增量方式,即只更新子应用的被改变部分。采用增量更新的方式可以降低所需的数据传输量,减少用户的流量消耗,并减少下载时间。通常,安装包是标准化的包,其具有专用于该动态应用的特定文件格式。例如,所述文件格式的一个示例可以是alipay mobile source(amr)格式。在一个非限制性示例中,生成安装包可包括将可运行包以及其它相关文件(例如签名文件和应用信息文件等)压缩到一个压缩包中。所述压缩可采用任何压缩方式,例如可采用zip压缩方式执行压缩。优选地,可将压缩包保存该特定文件格式,例如可将压缩包保存为amr包。客户端设备上的动态应用在解压时,可先将后缀(例如.amr)更改为与压缩方式对应的后缀(例如.zip),随后可使用相应的解压方式解压该安装包。通过采用特定文件格式(例如amr格式),可以将该安装包与其它文件区分开。该安装包可具有特定的可运行包文件目录规范。标准化安装包可允许客户端设备上的动态应用容易地识别并运行该安装包以便安装子应用。
以下以支付宝小程序为例,介绍安装包的文件结构:
如前面所介绍的,支付宝小程序子应用的源代码可分为app和page两个目录,其文件结构例如可如上面所述。编译构建模块214生成的可运行包可将app和page两个目录通过tar方式压缩为tar文件。例如,假设小程序文件名为test,那么可生成test.tar文件。如同上面解说的,API授权模块还可将授权文件等注入到tar文件中。此外,根据需要,tar文件中还可包括其它文件。随后,安装包生成模块220可将可运行包(例如tar文件)和签名文件打包为安装包,例如将其压缩为如上所述的特定文件格式。此外,该安装包中还可包括其它文件,例如通常可包括应用信息文件,如manifest.xml。
例如,假设安装包的名字为test.amr,则如果将test.amr解压,可得到以下目录格式:
优选地,服务器102还可包括后置检查模块222。后置检查模块222可被用于确保所生成的安装包是可信安装包。例如,后置检查模块222可做提前安装运行。如果所安装的子应用无法运行,或者检测出子应用中包括恶意代码/敏感词等,则可确定该安装包存在问题,为不可信安装包。优选地,后置检查模块可执行云端检查。云端检查可使用云端测试平台(图中未示出)对安装包进行检查。例如,云端测试平台可将安装包分发到各种类型的客户端设备,并在客户端设备上执行模拟运行,以测试安装包是否存在问题。采用云端检查极大减少了开发者所需的测试操作,保证了子应用在各种客户端设备上都能正常运行。优选地,云端测试平台在真机环境下模拟子应用的运行。也就是说,被分发安装包以进行测试的客户端设备是真实的物理客户端设备而非虚拟设备。在真机环境下执行测试能够得到更可靠的测试结果。确保安装包是可信安装包而不包括任何恶意代码。
优选地,服务器102还可包括存储模块224。存储模块224将子应用的安装包存储到存储器中,以供可信的用户设备106进行下载。优选地,存储模块224将子应用的安装包存储到云服务器。
可以领会,虽然服务器被描述为采用多个模块,但是这些模块中的多个模块可被组合为单个模块,或者单个模块的功能可被拆分为多个模块。此外,服务器还可包括更多的模块,或省略其中的某些模块。
可以看出,由于安装包的生成过程由服务器端实现,且具体逻辑是开发者无法感知的,因此伪造的安装包即使文件格式相似,也无法通过解密、签名验证、文件顺序判定等多重防护手段。此外,如上所述,如加密等防护手段可以被动态调整,这种动态化能力进一步加强了安全性。当前仅支持小程序IDE中直接使用可运行代码包,便于开发者在本地调试,而需要应用到手机真机中,则需要进行安装包的正式流程。
此外,上述安装包安装过程还允许开发者还原出自己的代码便于排查问题。例如,动态应用平台可提供专门的调试工具。开发者可使用该调试工具来调试可运行包。例如,在支付宝小程序的示例中,该调试工具可以是通过Electron等桌面技术专门为小程序语言打造的专有IDE。优选地,该调试工具可以帮助开发者定位到行级,且进行断点等调试。
需要领会,尽管在上文中频繁使用支付宝小程序作为示例,但本方案可同样应用于其它动态应用技术,包括但不限于RN(ReactNative)应用技术、离线H5(HTML5)应用技术等。在使用其它应用技术时,可相应采用其它的目录结构、加密方式等。
还需要领会,尽管在上文中描述了多个不同的模块,但其中的一个或多个模块可以被合并和/或拆分。此外,可省略其中的一个或多个模块,或者可包括其它附加模块。
用于生成子应用的安装包的方法
参见图3,其示出了根据本发明的实施例的用于生成子应用的安装包的方法300的流程图。在本发明的一个实施例中,所述方法300由服务器102执行。本领域技术人员可以领会,虽然在本文中将各操作描述为由一个服务器执行,但各操作也可由多个服务器或服务器群集等执行。
方法300可包括在步骤302接收来自开发者设备的源代码。此步骤的具体细节可参考上面对代码接收模块202的描述。
在一些情况下,所接收的源代码可以是经打包的源代码。在此情况下,方法300还可包括在步骤304将经打包的源代码解压缩。此步骤的具体细节可参考上面对解压缩模块204的描述。
优选地,方法300还可包括在步骤306对所接收的源代码进行入口检查,以屏蔽掉无名氏请求,以屏蔽无名氏请求和/或确保源代码和子应用的对应关系。通过所述服务器编译所述源代码以生成可运行包。此步骤的具体细节可参考上面对入口检查模块206的描述。
优选地,方法300还可包括在步骤308对所接收的源代码执行安全前置检查,以确保开发者所提交的内容不包含非法代码。所述非法代码可包括但不限于违禁词、恶意代码、安全漏洞代码等。此步骤的具体细节可参考上面对安全前置检查模块208的描述。
优选地,方法300还可在步骤310包括对源代码进行分析。例如,所述分析可包括分析所述源代码中的文件大小、数量和依赖关系等。此步骤的具体细节可参考上面对代码分析模块210的描述。
此外,方法300还可包括在步骤312对源代码进行优化合并。此步骤的具体细节可参考上面对优化合并模块212的描述。
方法300还可包括在步骤314对源代码执行编译构建,以生成子应用的可运行包。此步骤的具体细节可参考上面对编译构建模块214的描述。
方法300还可包括在步骤316对所述可运行包进行API授权。所述API授权可避免开发者获得高于与所述子应用相对应的权限的权限。此步骤的具体细节可参考上面对API授权模块216的描述。
优选地,方法300还可包括在步骤318在对所述可运行包进行API授权之后由所述服务器对所述子应用的安装包执行加密。此步骤的具体细节可参考上面对加密模块218的描述。
优选地,方法300还可包括在步骤320生成子应用的安装包。例如,可将可运行包以及其它相关文件压缩以生成安装包。优选地,该安装包可具有专用于该动态应用的特定文件格式。此步骤的具体细节可参考上面对加密模块220的描述。
优选地,方法300还可包括在步骤322对子应用的安装包执行后置检查。优选地,后置检查模块可采用云端检查,即使用云端测试平台对安装包进行检查。此步骤的具体细节可参考上面对后置检查模块222的描述。
优选地,方法300还可包括在步骤324存储子应用的安装包,例如将安装包存储在云服务器中。此步骤的具体细节可参考上面对存储模块224的描述。
应当领会,上述步骤中的一些可被省略。或者,该方法可包括附加的步骤。
此外,本申请还公开了一种存储指令的计算机可读存储介质,所述指令当被计算机执行时,使所述计算机执行上述方法。
而且,本申请还公开了一种计算机系统,所述计算机系统包括用于执行上述方法的装置。
而且,本申请还公开了一种包括存储于其上的计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被处理器执行时使得所述处理器执行本文所述的各实施例的方法。
可以理解,根据本发明的各实施例的方法可以用软件、固件或其组合来实现。
应该理解,所公开的方法中各步骤的具体次序或阶层是示例性过程的解说。基于设计偏好,应该理解,可以重新编排这些方法中各步骤的具体次序或阶层。所附方法权利要求以样本次序呈现各种步骤的要素,且并不意味着被限定于所呈现的具体次序或阶层,除非在本文中有特别叙述。
应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
还应理解,本文采用的术语和表述方式只是用于描述,本发明并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。
同样,需要指出的是,虽然本发明已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,在没有脱离本发明精神的情况下还可做出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。

Claims (29)

1.一种用于生成子应用的安装包的方法,其特征在于,所述子应用被包括在父应用中,所述子应用能够独立于所述父应用的其余部分被更新,所述子应用依赖于与所述父应用相关联的API授权,所述方法包括:
通过服务器接收来自开发者设备的源代码;
通过所述服务器将所述源代码编译构建为可运行包;
通过所述服务器对所述可运行包进行API授权;以及
通过所述服务器基于所述可运行包生成所述子应用的安装包。
2.如权利要求1所述的方法,其特征在于,在接收所述源代码时执行入口检查,所述入口检查屏蔽无名氏请求和/或确保所述源代码和所述子应用的对应关系。
3.如权利要求1所述的方法,其特征在于,在将所述源代码编译构建为可运行包之前由所述服务器对所述源代码执行安全前置检查,所述安全前置检查确保所述源代码不包含非法代码。
4.如权利要求1所述的方法,其特征在于,所述方法还包括由所述服务器分析所述源代码中的文件大小、数量和依赖关系。
5.如权利要求1所述的方法,其特征在于,所述方法还包括对所述源代码执行合并和/或优化。
6.如权利要求1所述的方法,其特征在于,所述API授权避免开发者获得高于与所述子应用相对应的权限的权限。
7.如权利要求1所述的方法,其特征在于,还包括由所述服务器对所述子应用执行加密,所述加密确保所述子应用的安装包不被改变。
8.如权利要求1所述的方法,其特征在于,其中所述安装包具有专用于所述动态应用的特定文件格式。
9.如权利要求1所述的方法,其特征在于,所述安装包是采用增量更新逻辑生成的。
10.如权利要求1所述的方法,其特征在于,在对所述可运行包进行API授权之后对所述子应用执行安全后置检查,所述安全后置检查确保所生成的安装包为可信安装包。
11.如权利要求10所述的方法,其特征在于,所述安全后置检查包括在真机环境下测试所述安装包。
12.如权利要求1所述的方法,其特征在于,还包括在云端存储所述安装包以供用户下载。
13.如权利要求1所述的方法,其特征在于,所述源代码是由所述开发者设备打包的源代码。
14.一种用于生成子应用的安装包的服务器,其特征在于,所述子应用被包括在父应用中,所述子应用能够独立于所述父应用的其余部分被更新,所述子应用依赖于与所述父应用相关联的API授权,所述服务器包括:
接收模块,所述接收模块被配置成接收来自开发者设备的源代码;
编译构建模块,所述编译模块被配置成编译构建所述源代码以生成可运行包;
API授权模块,所述API授权模块被配置成对所述可运行包进行API授权;以及
安装包生成模块,所述安装包生成模块被配置成基于所述可运行包生成所述子应用的安装包。
15.如权利要求14所述的服务器,其特征在于,所述服务器还包括入口检查模块,所述入口检查模块被配置成在接收所述源代码时执行入口检查,所述入口检查屏蔽无名氏请求和/或确保所述源代码和所述子应用的对应关系。
16.如权利要求14所述的服务器,其特征在于,所述服务器还包括前置安全检查模块,所述前置安全检查模块被配置成在编译所述源代码之前由所述服务器对所述源代码执行安全前置检查,所述安全前置检查确保所述源代码不包含非法代码。
17.如权利要求14所述的服务器,其特征在于,所述服务器还包括代码分析模块,所述代码分析模块被配置成分析所述源代码中的文件大小、数量和依赖关系。
18.如权利要求14所述的服务器,其特征在于,所述服务器还包括合并优化模块,所述合并优化模块被配置成对所述源代码执行合并和/或优化。
19.如权利要求14所述的服务器,其特征在于,对所述可运行包进行API授权避免开发者获得高于与所述子应用相对应的权限的权限。
20.如权利要求14所述的服务器,其特征在于,所述服务器还包括加密模块,所述加密模块被配置成在对所述可运行包进行API授权之后对所述子应用执行加密。
21.如权利要求14所述的服务器,其特征在于,所述安装包具有专用于所述动态应用的特定文件格式。
22.如权利要求14所述的服务器,其特征在于,所述安装包是采用增量更新逻辑生成的。
23.如权利要求14所述的服务器,其特征在于,所述服务器还包括安全后置检查模块,所述安全后置检查模块被配置成在对所述可运行包进行API授权之后对所述子应用执行安全后置检查,所述安全后置检查确保所生成的安装包为可信安装包。
24.如权利要求23所述的服务器,其特征在于,所述安全后置检查包括在真机环境下测试所述安装包。
25.如权利要求14所述的服务器,其特征在于,所述服务器还包括云存储模块,所述云存储模块被配置成在云端存储所述安装包以供用户下载。
26.如权利要求14所述的服务器,其特征在于,所述源代码是由所述开发者设备打包的源代码。
27.一种用于生成子应用的安装包的系统,其特征在于,所述子应用被包括在父应用中,所述子应用能够独立于所述父应用的其余部分被更新,所述子应用依赖于与所述父应用相关联的API授权,所述系统包括:
开发者设备,所述开发者设备被配置为:
生成源代码;
将所述源代码上传到服务器;以及
服务器,所述服务器被配置为:
接收来自开发者设备的源代码;
通过所述服务器将所述源代码编译构建为可运行包;
通过所述服务器对所述可运行包进行API授权;以及
通过所述服务器基于所述可运行包生成所述子应用的安装包。
28.一种存储指令的计算机可读存储介质,所述指令当被计算机执行时,使所述计算机执行如权利要求1-13中任一项所述的方法。
29.一种计算机系统,包括用于执行如权利要求1-13中任一项所述的方法的装置。
CN201910506669.0A 2019-06-12 2019-06-12 用于生成子应用的安装包的方法和系统 Active CN110333868B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910506669.0A CN110333868B (zh) 2019-06-12 2019-06-12 用于生成子应用的安装包的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910506669.0A CN110333868B (zh) 2019-06-12 2019-06-12 用于生成子应用的安装包的方法和系统

Publications (2)

Publication Number Publication Date
CN110333868A true CN110333868A (zh) 2019-10-15
CN110333868B CN110333868B (zh) 2023-12-19

Family

ID=68140612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910506669.0A Active CN110333868B (zh) 2019-06-12 2019-06-12 用于生成子应用的安装包的方法和系统

Country Status (1)

Country Link
CN (1) CN110333868B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367510A (zh) * 2020-02-24 2020-07-03 腾讯音乐娱乐科技(深圳)有限公司 一种安卓功能模块开发的方法及装置
CN111475142A (zh) * 2020-04-03 2020-07-31 支付宝(杭州)信息技术有限公司 一种小程序文件包的生成方法、装置及设备
CN112488686A (zh) * 2020-11-19 2021-03-12 建信金融科技有限责任公司 一种安全支付方法、系统、电子设备及可读存储介质
CN112786034A (zh) * 2019-11-08 2021-05-11 阿里巴巴集团控股有限公司 语音交互方法、装置、设备及存储介质
CN112925722A (zh) * 2021-03-30 2021-06-08 重庆阿克索信息科技有限公司 基于gmp规范的开发测试一体化服务系统
CN114764352A (zh) * 2021-01-15 2022-07-19 北京猎户星空科技有限公司 一种业务服务提供方法、智能设备及存储介质
WO2023082365A1 (zh) * 2021-11-10 2023-05-19 同程网络科技股份有限公司 一种微信小程序打包平台、方法、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367305B1 (en) * 2015-05-27 2016-06-14 Runnable Inc. Automatic container definition
CN105786567A (zh) * 2016-02-25 2016-07-20 四川长虹电器股份有限公司 用于轻应用与主应用信息交互的中间件及iOS应用子模块动态升级方法
CN106709288A (zh) * 2016-12-22 2017-05-24 腾讯科技(深圳)有限公司 应用程序审核操作权限处理方法和装置
CN107748662A (zh) * 2017-11-17 2018-03-02 深圳市泉眼网络科技有限公司 应用程序开发方法、终端及计算机可读存储介质
CN107766050A (zh) * 2017-10-31 2018-03-06 新华三云计算技术有限公司 一种异构应用的部署方法以及装置
WO2018095306A1 (zh) * 2016-11-25 2018-05-31 腾讯科技(深圳)有限公司 应用程序页面处理方法、装置及存储介质
CN108920366A (zh) * 2018-06-28 2018-11-30 腾讯科技(深圳)有限公司 一种子应用调试方法、装置及系统
CN109656538A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 应用程序的生成方法、装置、系统、设备和介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367305B1 (en) * 2015-05-27 2016-06-14 Runnable Inc. Automatic container definition
CN105786567A (zh) * 2016-02-25 2016-07-20 四川长虹电器股份有限公司 用于轻应用与主应用信息交互的中间件及iOS应用子模块动态升级方法
WO2018095306A1 (zh) * 2016-11-25 2018-05-31 腾讯科技(深圳)有限公司 应用程序页面处理方法、装置及存储介质
CN106709288A (zh) * 2016-12-22 2017-05-24 腾讯科技(深圳)有限公司 应用程序审核操作权限处理方法和装置
CN109656538A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 应用程序的生成方法、装置、系统、设备和介质
CN107766050A (zh) * 2017-10-31 2018-03-06 新华三云计算技术有限公司 一种异构应用的部署方法以及装置
CN107748662A (zh) * 2017-11-17 2018-03-02 深圳市泉眼网络科技有限公司 应用程序开发方法、终端及计算机可读存储介质
CN108920366A (zh) * 2018-06-28 2018-11-30 腾讯科技(深圳)有限公司 一种子应用调试方法、装置及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YUKIKAZU MURAKAMI等: "A Proposal of an Installation Manual Generation Method for Open Source Software Using Operation Logs", 《2008 IEEE INTERNATIONAL CONFERENCE ON SIGNAL IMAGE TECHNOLOGY AND INTERNET BASED SYSTEMS》 *
谢超;: "集中式应用系统分布式改造方案研究", 《金融电子化》, no. 02 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112786034A (zh) * 2019-11-08 2021-05-11 阿里巴巴集团控股有限公司 语音交互方法、装置、设备及存储介质
CN112786034B (zh) * 2019-11-08 2023-04-07 阿里巴巴集团控股有限公司 语音交互方法、装置、设备及存储介质
CN111367510A (zh) * 2020-02-24 2020-07-03 腾讯音乐娱乐科技(深圳)有限公司 一种安卓功能模块开发的方法及装置
CN111367510B (zh) * 2020-02-24 2024-03-19 腾讯音乐娱乐科技(深圳)有限公司 一种安卓功能模块开发的方法及装置
CN111475142A (zh) * 2020-04-03 2020-07-31 支付宝(杭州)信息技术有限公司 一种小程序文件包的生成方法、装置及设备
CN112488686A (zh) * 2020-11-19 2021-03-12 建信金融科技有限责任公司 一种安全支付方法、系统、电子设备及可读存储介质
CN114764352A (zh) * 2021-01-15 2022-07-19 北京猎户星空科技有限公司 一种业务服务提供方法、智能设备及存储介质
CN112925722A (zh) * 2021-03-30 2021-06-08 重庆阿克索信息科技有限公司 基于gmp规范的开发测试一体化服务系统
CN112925722B (zh) * 2021-03-30 2024-05-10 重庆阿克索信息科技有限公司 基于gmp规范的开发测试一体化服务系统
WO2023082365A1 (zh) * 2021-11-10 2023-05-19 同程网络科技股份有限公司 一种微信小程序打包平台、方法、设备及存储介质

Also Published As

Publication number Publication date
CN110333868B (zh) 2023-12-19

Similar Documents

Publication Publication Date Title
CN110333868A (zh) 用于生成子应用的安装包的方法和系统
US8166313B2 (en) Method and apparatus for dump and log anonymization (DALA)
EP1680727B1 (en) Distributed document version control
US20110311046A1 (en) Image Forming System, Image Forming Apparatus, and Method in which an Application is Added
CN117692170A (zh) 通信方法和设备、折叠数据的方法和系统以及计算机
US20120131354A1 (en) Method and system for provision of cryptographic services
Martini et al. Conceptual evidence collection and analysis methodology for Android devices
US9954900B2 (en) Automating the creation and maintenance of policy compliant environments
CN109992987B (zh) 基于Nginx的脚本文件保护方法、装置及终端设备
US8386608B1 (en) Service scripting framework
CN114547558B (zh) 授权方法、授权控制方法及装置、设备和介质
CN106559223B (zh) 应用程序签名方法及装置
KR20170089352A (ko) 가상화 시스템에서 수행하는 무결성 검증 방법
CN111814166A (zh) 一种数据加密方法、装置和电子设备
CN110766409A (zh) Ssl证书校验方法、装置、设备及计算机存储介质
CN110597496B (zh) 应用程序的字节码文件获取方法及装置
CN116249980A (zh) 通过异构加密的软件访问
CN111159712B (zh) 检测方法、设备及存储介质
US9009472B2 (en) Providing consistent cryptographic operations
US20190317756A1 (en) Software artifact management systems and methods
KR101979320B1 (ko) 메타정보 및 엔터프라이즈 프레임웍을 이용한 암호화 sql문 자동 생성 시스템 및 방법
CN113886892B (zh) 应用程序的数据获取方法和装置、及存储介质和电子设备
Studiawan Forensic analysis of iOS binary cookie files
KR101004615B1 (ko) 소프트웨어 인증 장치 및 방법
Latifa et al. Permission Watcher Tool: a sandbox tool based static and Dynamic analysis for Android Apps

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40014999

Country of ref document: HK

TA01 Transfer of patent application right

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant