CN110851135A - 应用程序自动构建上传方法、装置及计算机设备、存储介质 - Google Patents

应用程序自动构建上传方法、装置及计算机设备、存储介质 Download PDF

Info

Publication number
CN110851135A
CN110851135A CN201910867023.5A CN201910867023A CN110851135A CN 110851135 A CN110851135 A CN 110851135A CN 201910867023 A CN201910867023 A CN 201910867023A CN 110851135 A CN110851135 A CN 110851135A
Authority
CN
China
Prior art keywords
program
uploading
construction
file
configuration information
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.)
Pending
Application number
CN201910867023.5A
Other languages
English (en)
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.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China 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 Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN201910867023.5A priority Critical patent/CN110851135A/zh
Publication of CN110851135A publication Critical patent/CN110851135A/zh
Pending legal-status Critical Current

Links

Images

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/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本发明属于计算机领域,涉及一种应用程序自动构建上传方法、装置及计算机设备、存储介质,所述方法包括:接收应用程序构建上传请求;根据所述应用程序构建上传请求获取程序代码文件并传送至程序构建目录中;获取与所述应用程序构建上传请求的类别匹配的程序构建配置信息,根据程序构建配置信息对程序代码文件进行编译,生成编译文件;将所述编译文件打包生成待上传的包文件;对所述包文件进行签名和校验,校验通过后上传所至目标软件平台中,完成应用程序的自动构建上传。本发明提供的方案通过将获取代码、编译构建、上传提审等环节串联整合在一起,以自动化的方式来运作,可以接入持续集成,能够极大的节省应用程序构建时间,提高工作效率。

Description

应用程序自动构建上传方法、装置及计算机设备、存储介质
技术领域
本发明实施例属于计算机技术领域,尤其涉及一种应用程序自动构建上传方法、装置及计算机设备、存储介质。
背景技术
当前,移动端的应用程序一般会发布到特定的应用商店(比如发布Android应用程序的Google play,发布iOS应用程序的App Store等)供用户下载使用,应用程序在应用商店上架前,需要向应用商店提交审核版本以供应用商店审核,审核通过后方可在应用商店上架正式版的应用程序,此外,开发者在将应用程序提交应用商店审核的过程中,可能在一些APP内测分发平台(比如CDN、蒲公英等)发布测试版本或者体验版本。
不管是发布审核版、测试版、体验版还是正式版,都需要构建应用程序并上传至应用商店或者APP内测分发平台中,现有技术中构建和上传流程均需要人工操作和监守,耗费较多人力和时间,不能方便实现自动化和持续集成,影响研发和测试效率,在编译、构建、上传等环节,由于人为因素如参数配置错误等导致发布失败,由此导致的反复操作也会耗费较长时间,特别在一些应用商店中需要反复构建应用程序,比如在App Store中发布应用程序前,一般需要构建Development包(开发证书签名包),Distribution包(用于提交AppStore审核)、企业证书签名包等,如果Distribution包在审核过程中测试出现问题,还需修改后重新构建打包,每次构建打包需要花费十几分钟,如果全部由人工操作和监守,效率将非常低。
发明内容
有鉴于此,本发明实施例提供一种应用程序自动构建上传方法、装置及计算机设备、存储介质,以解决现有的应用程序构建过程中容易出现人为因素导致的参数配置错误引起应用程序反复构建,导致发布应用程序的工作效率低的问题。
第一方面,本发明实施例提供一种应用程序自动构建上传方法,包括:
接收应用程序构建上传请求;
根据所述应用程序构建上传请求获取程序代码文件,并将所述程序代码文件传送至程序构建目录中;
识别所述应用程序构建上传请求的类别,获取与所述类别匹配的程序构建配置信息;
基于所述程序构建配置信息对所述程序代码文件进行编译,生成包含有程序代码和所述程序构建配置信息的编译文件,其中所述程序代码和所述程序构建配置信息在所述编译文件中以机器码的形式体现;
将生成的编译文件打包生成待上传的包文件;
对所述包文件进行签名和校验,若校验通过,上传所述包文件至目标软件平台中,完成应用程序的自动构建上传。
作为本发明可实施的方式,所述识别所述应用程序构建上传请求的类别,获取与所述类别匹配的程序构建配置信息包括:
获取所述应用程序构建上传请求中体现需要构建的应用程序版本类型的标识信息,根据所述标识信息确定所述应用程序构建上传请求的类别,其中所述版本类型包括测试版、提审版和正式版中的至少一种;
根据获取程序构建配置信息的存储地址信息;
根据所述存储地址信息访问配置信息库,从所述配置信息库中获取与所述类别匹配的程序构建配置信息。
作为本发明可实施的方式,所述应用程序自动构建上传方法还包括:
在所述根据所述应用程序构建上传请求获取程序代码文件之前,判断是否存在所述程序构建目录,若不存在则创建对应的程序构建目录,若存在则对所述程序构建目录执行清理操作,以清除历史残留内容。
作为本发明可实施的方式,所述应用程序自动构建上传方法还包括:
在所述基于所述程序构建配置信息对所述程序代码文件进行编译之前,对所述程序构建配置信息和所述程序构建目录中的程序代码文件进行完整性检验,若检验失败,重新获取完整性检验失败的所述程序构建配置信息和/或所述程序代码文件。
作为本发明可实施的方式,在所述接收应用程序构建上传请求的步骤之前,所述应用程序自动构建上传方法还包括:
获取配置所述程序构建配置信息所需的不变类参数和变化类参数;
根据所述不变类参数和所述变化类参数配置至少一套所述程序构建配置信息,每套所述程序构建配置信息对应一个类别的所述应用程序构建上传请求。
作为本发明可实施的方式,在所述上传所述包文件至目标软件平台中之后,所述应用程序自动构建上传方法还包括:
获取所述包文件在所述目标软件平台中的下载链接,并根据所述下载链接生成包含所述下载链接的二维码文件。
作为本发明可实施的方式,所述应用程序自动构建上传方法还包括:对整个编译构建上传过程记录详细日志,并对最终结果做可视化呈现。
第二方面,本发明实施例提供一种应用程序自动构建上传装置,包括:
请求接收模块,用于接收应用程序构建上传请求;
代码获取模块,用于根据所述应用程序构建上传请求获取程序代码文件,并将所述程序代码文件传送至程序构建目录中;
配置信息获取模块,用于识别所述应用程序构建上传请求的类别,获取与所述类别匹配的程序构建配置信息;
编译模块,用于基于所述程序构建配置信息对所述程序代码文件进行编译,生成包含有程序代码和所述程序构建配置信息的编译文件,其中所述程序代码和所述程序构建配置信息在所述编译文件中以机器码的形式体现;
文件生成模块,用于将生成的编译文件打包生成待上传的包文件;
文件校验发布模块,用于对所述包文件进行签名和校验,若校验通过,上传所述包文件至目标软件平台中,完成应用程序的自动构建上传。
作为本发明可实施的方式,所述配置信息获取模块包括:
标识信息获取单元,用于获取所述应用程序构建上传请求中体现需要构建的应用程序版本类型的标识信息,根据所述标识信息确定所述应用程序构建上传请求的类别,其中所述版本类型包括测试版、提审版和正式版中的至少一种;
地址信息获取单元,用于根据获取程序构建配置信息的存储地址信息;
配置信息获取单元,用于根据所述存储地址信息访问配置信息库,从所述配置信息库中获取与所述类别匹配的程序构建配置信息。
作为本发明可实施的方式,所述应用程序自动构建上传装置还包括:
第一预检模块,用于在所述根据所述应用程序构建上传请求获取程序代码文件之前,判断是否存在所述程序构建目录;
目录管理模块,用于在所述第一预检模块判定不存在所述程序构建目录时创建对应的程序构建目录,以及在存在所述程序构建目录时对所述程序构建目录执行清理操作,以清除历史残留内容。
作为本发明可实施的方式,所述应用程序自动构建上传装置还包括第二预检模块,用于在所述基于所述程序构建配置信息对所述程序代码文件进行编译之前,对所述程序构建配置信息和所述程序构建目录中的程序代码文件进行完整性检验;
所述代码获取模块还用于在所述程序代码文件的完整性检验失败时重新获取所述程序代码文件;
所述配置信息获取模块还用于在所述程序构建配置信息的完整性检验失败时重新获取所述程序构建配置信息。
第三方面,本发明实施例提供一种计算机设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机可读指令,所述计算机可读指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上述的应用程序自动构建上传方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时实现如上述的应用程序自动构建上传方法的步骤。
根据本发明实施例提供的应用程序自动构建上传方法、装置及计算机设备、存储介质,在接收应用程序构建上传请求之后能够自动配置程序构建所需的程序代码文件和程序构建配置信息,并自动实现编译、打包、签名、校验及上传,通过将获取代码、编译构建、上传提审等环节串联整合在一起,以自动化的方式来运作,可以接入持续集成,能够极大的节省应用程序构建时间,提高工作效率。
附图说明
为了更清楚地说明本发明的方案,下面将对实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用程序自动构建上传方法的流程图;
图2为本发明实施例提供的获取程序构建配置信息的流程图;
图3为本发明实施例提供的应用程序自动构建上传装置的示意图;
图4为本发明实施例提供的配置信息获取模块的示意图;
图5为本发明实施例提供的应用程序自动构建上传装置的另一示意图;
图6为本发明实施例提供的应用程序自动构建上传装置的又一示意图;
图7为本发明实施例提供的计算机设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
在说明书中的各个位置出现的“实施例”该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明实施例提供一种应用程序自动构建上传方法,可应用于应用程序的发布,可以减少应用程序发布过程中人工操作的环节,降低人工操作错误发生率,提高应用程序的发布效率,本发明提供的应用程序自动构建上传方法所构建的应用程序可以是Android应用程序,也可以是iOS应用程序,由于iOS的发布过程较Android应用程序的发布过程更为繁琐,因此本提供的应用程序自动构建上传方法后续的详细说明主要基于iOS应用程序的发布展开。如图1所示,所述应用程序自动构建上传方法包括:
S1、接收应用程序构建上传请求;
S2、根据所述应用程序构建上传请求获取程序代码文件,并将所述程序代码文件传送至程序构建目录中;
S3、识别所述应用程序构建上传请求的类别,获取与所述类别匹配的程序构建配置信息;
S4、基于所述程序构建配置信息对所述程序代码文件进行编译,生成包含有程序代码和所述程序构建配置信息的编译文件,其中所述程序代码和所述程序构建配置信息在所述编译文件中以机器码的形式体现;
S5、将生成的编译文件打包生成待上传的包文件;
S6、对所述包文件进行签名和校验,若校验通过,上传所述包文件至目标软件平台中,完成应用程序的自动构建上传。
在本发明实施例中,对于步骤S1,所述应用程序构建上传请求可由开发者针对特定的应用平台(应用商店,测试分发平台等)发起,比如在开发者的终端界面提供按键,开发者通过按键触发应用程序构建上传请求后,终端自动执行本步骤及后续步骤,直到应用程序上传完毕为止。当然,对于应用程序存在定期发布的情形时,也可以是根据预设的时间节点自动触发所述应用程序构建上传请求。
在本发明实施例中,步骤S2中获取程序代码文件的过程可包括获取所述应用程序文件对应的代码仓库地址,并根据代码仓库地址访问代码仓库来读取所述程序代码文件,其中代码仓库地址预先配置,代码仓库可以是远程代码仓库或者本地代码仓库,根据应用程序构建上传请求可以直接从远程代码仓库或者本地代码仓库直接获取程序代码文件,也可以从远程代码仓库中同步程序代码文件至本地代码仓库,再从本地代码仓库获取程序代码文件,这样的好处在于,当应用程序采用协作开发的方式开发时,协作的任何一方均可以将所有代码文件同步至本地,方便任何一方进行应用程序的构建和测试,具体的,本发明实施例可采用GIT代码仓库(属于远程代码仓库)。
在本发明实施例中,在针对不同软件平台构建应用程序时、或者针对同一平台构建不同版本的应用程序时,获取的应用程序构建上传请求所包含的信息将会不同,作为本发明可实施的方式,对于步骤S3,如图2所示,所述识别所述应用程序构建上传请求的类别,获取与所述类别匹配的程序构建配置信息包括:
S31、获取所述应用程序构建上传请求中体现需要构建的应用程序版本类型的标识信息,根据所述标识信息确定所述应用程序构建上传请求的类别,其中所述版本类型包括测试版、提审版和正式版中的至少一种;
S32、根据获取程序构建配置信息的存储地址信息;
S33、根据所述存储地址信息访问配置信息库,从所述配置信息库中获取与所述类别匹配的程序构建配置信息。
其中,如果在配置信息库中匹配到多套程序构建配置信息,则自动过滤过期的程序构建配置信息,而选择更新时间最新的程序构建配置信息。
在本发明实施例中,在执行步骤S1接收应用程序构建上传请求的步骤之前,所述应用程序自动构建上传方法包括:配置至少一套所述程序构建配置信息,每套所述程序构建配置信息对应一个类别的所述应用程序构建上传请求。
其中,所述程序构建配置信息只在首次构建应用程序时配置,可根据需求配置多套,比如针对测试版、提审版、正式版等的应用程序构建分别配置至少一套所述程序构建配置信息,每套程序构建配置信息可以以配置文件的形式体现,配置文件中包含多项配置参数,比如以iOS应用程序为例,配置文件可包括开发者账号(Apple ID)、Bundle ID、SignCertificates(签名证书)、Provisioning Profiles(描述文件)、App Display Name、AppVersion、Short Version、加固混淆参数等配置参数,在一些实施例中还可包括开发者自定义的配置参数,在此不作限定。
对于同一个应用程序,在一套程序构建配置信息的配置过程中,需要配置两类参数,分别是不变类参数和变化类参数,不变类参数比如开发者账号(Apple ID)、Bundle ID、App Display Name等,而变化类参数比如App Version、Short Version等,不变类参数首次配置后,后续可直接获取,而变化类参数首次配置时,除了配置首次的参数,还需配置后续获取这类参数的获取规则,比如对于App Version、Short Version等参数会设置自增规则,每次构建时,会在前次构建时的版本参数的基础上按照自增规则生成的版本参数。通过一次配置,将原先需要人工操作的环节通过变量和参数的方式固化下来,后续再进行应用程序构建时不需要人工每次都去确认和调整,而是自动获取匹配的程序构建配置信息,大大提高了应用程序构建速度,而且,后续所述程序构建配置信息发生变化需调整时,也能支持快速修改。
在本发明一些实施例中,在执行S2根据所述应用程序构建上传请求获取程序代码文件的步骤前,所述应用程序自动构建上传方法还包括:判断是否存在所述程序构建目录,若不存在则创建对应的程序构建目录,若存在则对所述程序构建目录执行清理操作,以清除历史残留内容。
在存在所述程序构建目录时,通过清理程序构建目录,可以避免先前构建应用程序时残留的文件对本次的应用程序构建造成影响而导致的构建失败。在具体实施例中,清理程序构建目录的操作也可以在应用程序完成构建和上传之后进行,这样下次再进行应用程序构建时可直接将获取的程序代码文件传入程序构建目录中,当然,存在清理失败的情形,保险起见,可以在构建前后均对程序构建目录进行清理,降低清理失败的情形的发生几率。
在本发明一些实施例中,在执行S3基于所述程序构建配置信息对所述程序代码文件进行编译的步骤之前,所述应用程序自动构建上传方法还包括:
对所述程序构建配置信息和所述程序构建目录中的程序代码文件进行完整性检验,若检验失败,重新获取完整性检验失败的所述程序构建配置信息和/或所述程序代码文件。本步骤主要是检验程序代码文件和程序构建配置信息包含的必要参数是否缺失,若缺失则重新获取或者提示错误,直到获取完整的程序代码文件和程序构建配置信息为止。
在本发明实施例中,对于步骤S4和S5,对于运行于不同系统中的应用程序而言,构建得到的包文件是不同的,比如在Android系统中运行的应用程序,构建的包文件为apk文件,在iOS中运行的应用程序,构建的包文件为ipa文件,需要说明的是,在生成包文件的过程中,可以是先生成中间文件,再通过中间文件得到最终的包文件,此处不做限定。
在本发明实施例中,对于步骤S6,所述包文件的签名可以从所述程序构建配置信息中获取目标软件平台的签名文件,通过签名文件对所述包文件进行签名,当然也可以通过其他方式比如直接根据存储路径从存储器中读取签名文件,或者根据下载路径从目标软件平台下载签名文件。
所述包文件的校验是验证所述包文件中被配置的参数与原始的所述程序构建配置信息是否匹配,如果某个参数缺失或不一致,则说明应用程序的构建过程发生错误,在本发明实施例中,如果出现所述包文件中被配置的参数与原始的所述程序构建配置信息不匹配的情况,则说明所述程序代码文件存在问题,提示修改程序代码文件或提示重新获取程序代码文件。在本实施例中,所述包文件的校验过程是对在所有参数自动配置后进行,相比于现有技术中人工逐级输入验证的方式,效率高,错误率低。
在本发明一些实施例中,上传所述包文件后,所述应用程序自动构建上传方法还可包括:获取所述包文件在所述目标软件平台中的下载链接,并根据所述下载链接生成包含所述下载链接的二维码文件。通过这种方式可以方便用户下载测试版或者体验版的应用程序试用。
在本发明一些实施例中,所述应用程序自动构建上传方法还包括:对整个编译构建上传过程记录详细日志,并对最终结果做可视化呈现。
本发明实施例提供的应用程序自动构建上传方法的步骤可通过脚本配合构建工具(比如Xcode)来实现。
根据本发明实施例提供的应用程序自动构建上传方法,在接收应用程序构建上传请求之后能够自动配置程序构建所需的程序代码文件和程序构建配置信息,并自动实现编译、打包、签名、校验及上传,通过将获取代码、编译构建、上传提审等环节串联整合在一起,以自动化的方式来运作,可以接入持续集成,能够极大的节省应用程序构建时间,提高工作效率。
本发明实施例提供一种应用程序自动构建上传装置,可执行上述实施例提供的应用程序自动构建上传方法,实现应用程序的发布,减少应用程序发布过程中人工操作的环节,降低人工操作错误发生率,提高应用程序的发布效率,本发明提供的应用程序自动构建上传装置所构建的应用程序可以是Android应用程序,也可以是iOS应用程序。如图3所示,所述应用程序自动构建上传装置包括请求接收模块10、代码获取模块20、配置信息获取模块30、编译模块40、文件生成模块50和文件校验发布模块60。
在本发明实施例中,所述请求接收模块10用于接收应用程序构建上传请求。所述应用程序构建上传请求可由开发者针对特定的应用平台(应用商店,测试分发平台等)发起,比如在开发者的终端界面提供按键,开发者通过按键触发应用程序构建上传请求后,终端自动执行本步骤及后续步骤,直到应用程序上传完毕为止。当然,对于应用程序存在定期发布的情形时,也可以是根据预设的时间节点自动触发所述应用程序构建上传请求。
在本发明实施例中,所述代码获取模块20用于根据所述应用程序构建上传请求获取程序代码文件,并将所述程序代码文件传送至程序构建目录中。获取程序代码文件的过程可包括获取所述应用程序文件对应的代码仓库地址,并根据代码仓库地址访问代码仓库来读取所述程序代码文件,其中代码仓库地址和程序代码文件的获取可参阅上述方法实施例中相关内容,在此不作展开。
在本发明实施例中,所述配置信息获取模块30用于识别所述应用程序构建上传请求的类别,获取与所述类别匹配的程序构建配置信息。在针对不同软件平台构建应用程序时、或者针对同一平台构建不同版本的应用程序时,获取的应用程序构建上传请求所包含的信息将会不同,如图4所示,作为本发明可实施的方式,所述配置信息获取模块30包括标识信息获取单元301、地址信息获取单元302和配置信息获取单元303,其中,所述标识信息获取单元301用于获取所述应用程序构建上传请求中体现需要构建的应用程序版本类型的标识信息,根据所述标识信息确定所述应用程序构建上传请求的类别,其中所述版本类型包括测试版、提审版和正式版中的至少一种;所述地址信息获取单元302用于根据获取程序构建配置信息的存储地址信息;所述配置信息获取单元303用于根据所述存储地址信息访问配置信息库,从所述配置信息库中获取与所述类别匹配的程序构建配置信息。其中,如果在配置信息库中匹配到多套程序构建配置信息,则自动过滤过期的程序构建配置信息,而选择更新时间最新的程序构建配置信息。
在本发明一些实施例中,如图5所示,所述应用程序自动构建上传装置还包括配置模块31,用于在所述请求接收模块10接收应用程序构建上传请求之前配置至少一套所述程序构建配置信息,每套所述程序构建配置信息对应一个类别的所述应用程序构建上传请求。具体的,所述配置模块31配置所述程序构建配置信息的过程可参阅上述方法实施例中的相关内容,在此不作展开。
在本发明一些实施例中,如图6所示,所述应用程序自动构建上传装置还包括预检模块21和目录管理模块22,其中,所述第一预检模块21用于在所述根据所述应用程序构建上传请求获取程序代码文件之前,判断是否存在所述程序构建目录;所述目录管理模块22用于在所述第一预检模块判定不存在所述程序构建目录时创建对应的程序构建目录,以及在存在所述程序构建目录时对所述程序构建目录执行清理操作,以清除历史残留内容。在存在所述程序构建目录时,通过上述目录管理模块清理程序构建目录,可以避免先前构建应用程序时残留的文件对本次的应用程序构建造成影响而导致的构建失败。在具体实施例中,清理程序构建目录的操作也可以在应用程序完成构建和上传之后进行,这样下次再进行应用程序构建时可直接将获取的程序代码文件传入程序构建目录中,当然,存在清理失败的情形,保险起见,可以在构建前后均对程序构建目录进行清理,降低清理失败的情形的发生几率。
在本发明一些实施例中,所述预检模块21还用于在所述基于所述程序构建配置信息对所述程序代码文件进行编译之前,对所述程序构建配置信息和所述程序构建目录中的程序代码文件进行完整性检验。相应的,所述代码获取模块20还用于在所述程序代码文件的完整性检验失败时重新获取所述程序代码文件;所述配置信息获取模块30还用于在所述程序构建配置信息的完整性检验失败时重新获取所述程序构建配置信息。具体的,所述预检模块20主要是检验程序代码文件和程序构建配置信息包含的必要参数是否缺失,若缺失则者提示错误,或通过所述代码获取模块20重新获取程序代码文件,通过所述配置信息获取模块30重新获取所述程序构建配置信息,直到获取完整的程序代码文件和程序构建配置信息为止。
在本发明实施例中,所述编译模块40用于基于所述程序构建配置信息对所述程序代码文件进行编译,生成包含有程序代码和所述程序构建配置信息的编译文件,其中所述程序代码和所述程序构建配置信息在所述编译文件中以机器码的形式体现;所述文件生成模块50用于将生成的编译文件打包生成待上传的包文件。对于运行于不同系统中的应用程序而言,构建得到的包文件是不同的,比如在Android系统中运行的应用程序,构建的包文件为apk文件,在iOS中运行的应用程序,构建的包文件为ipa文件,需要说明的是,在生成包文件的过程中,可以是先生成中间文件,再通过中间文件得到最终的包文件,此处不做限定。
在本发明实施例中,所述文件校验发布模块60用于对所述包文件进行签名和校验,若校验通过,上传所述包文件至目标软件平台中,完成应用程序的自动构建上传。所述包文件的签名可以从所述程序构建配置信息中获取目标软件平台的签名文件,通过签名文件对所述包文件进行签名,当然也可以通过其他方式比如直接根据存储路径从存储器中读取签名文件,或者根据下载路径从目标软件平台下载签名文件。所述包文件的校验是验证所述包文件中被配置的参数与原始的所述程序构建配置信息是否匹配,如果某个参数缺失或不一致,则说明应用程序的构建过程发生错误,在本发明实施例中,如果出现所述包文件中被配置的参数与原始的所述程序构建配置信息不匹配的情况,则说明所述程序代码文件存在问题,提示修改程序代码文件或提示重新获取程序代码文件。在本实施例中,所述包文件的校验过程是对在所有参数自动配置后进行,相比于现有技术中人工逐级输入验证的方式,效率高,错误率低。
在本发明一些实施例中,如图6所示,所述应用程序自动构建上传装置还包括下载链接生成模块70,用于所述文件校验发布模块60上传所述包文件后,获取所述包文件在所述目标软件平台中的下载链接,并根据所述下载链接生成包含所述下载链接的二维码文件。通过这种方式可以方便用户下载测试版或者体验版的应用程序试用。
在本发明一些实施例中,如图6所示,所述应用程序自动构建上传装置还包括展示模块80,用于对整个编译构建上传过程记录详细日志,并对最终结果做可视化呈现。
根据本发明实施例提供的应用程序自动构建上传装置,在接收应用程序构建上传请求之后能够自动配置程序构建所需的程序代码文件和程序构建配置信息,并自动实现编译、打包、签名、校验及上传,通过将获取代码、编译构建、上传提审等环节串联整合在一起,以自动化的方式来运作,可以接入持续集成,能够极大的节省应用程序构建时间,提高工作效率。
本发明实施例还提供一种计算机设备,如图7所示,所述计算机设备包括至少一个处理器71,以及与所述至少一个处理器71通信连接的存储器72,图7中示出一个处理器71,所述存储器72存储有可被所述至少一个处理器71执行的计算机可读指令,所述计算机可读指令被所述至少一个处理器71执行,以使所述至少一个处理器71能够执行如上所述的应用程序自动构建上传方法的步骤。
具体的,本发明实施例中的存储器72为非易失性计算机可读存储介质,可用于存储计算机可读指令、非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请上述实施例中的应用程序自动构建上传方法对应的程序指令/模块;所述处理器71通过运行存储在存储器72中的非易失性软件程序、计算机可读指令以及模块,从而执行各种功能应用以及进行数据处理,即实现上述方法实施例中所述的应用程序自动构建上传方法。
在一些实施例中,所述存储器72可以包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需要的应用程序;数据存储区可存储应用程序自动构建上传方法的处理过程中所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件;
在一些实施例中,存储器72可选包括相对于处理器71远程设置的远程存储器,这些远程存储器可以通过网络连接至执行域名过滤处理的计算机设备,前述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本发明实施例中,执行应用程序自动构建上传方法的计算机设备还可以包括输入装置73和输出装置74;其中,输入装置73可获取用户在计算机设备上的操作信息,输出装置74可包括显示屏等显示设备。在本发明实施例中,所述处理器71、存储器72、输入装置73和输出装置74可以通过总线或者其他方式连接,图7中以通过总线连接为例。
根据本发明实施例提供的计算机设备,通过处理器71执行存储器72中的代码时能够执行上述实施例中应用程序自动构建上传方法的步骤,且具有上述方法实施例的技术效果,未在本实施例中详尽描述的技术细节,可参见本申请方法实施例中所提供的技术内容。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时,能够实现如上所述的应用程序自动构建上传方法的步骤,当执行所述方法的步骤时,具有上述方法实施例的技术效果,未在本实施例中详尽描述的技术细节,可参见本申请方法实施例中所提供的技术内容。
本发明实施例还提供一种计算机程序产品,所述产品可执行本申请方法实施例中所提供的应用程序自动构建上传方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请方法实施例中所提供的技术内容。
需要说明的是,在本发明上述实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或智能终端设备或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明所提供的上述实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,至少两个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
显然,以上所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,附图中给出了本发明的较佳实施例,但并不限制本发明的专利范围。本发明可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。

Claims (10)

1.一种应用程序自动构建上传方法,其特征在于,包括:
接收应用程序构建上传请求;
根据所述应用程序构建上传请求获取程序代码文件,并将所述程序代码文件传送至程序构建目录中;
识别所述应用程序构建上传请求的类别,获取与所述类别匹配的程序构建配置信息;
基于所述程序构建配置信息对所述程序代码文件进行编译,生成包含有程序代码和所述程序构建配置信息的编译文件,其中所述程序代码和所述程序构建配置信息在所述编译文件中以机器码的形式体现;
将生成的编译文件打包生成待上传的包文件;
对所述包文件进行签名和校验,若校验通过,上传所述包文件至目标软件平台中,完成应用程序的自动构建上传。
2.根据权利要求1所述的应用程序自动构建上传方法,其特征在于,所述识别所述应用程序构建上传请求的类别,获取与所述类别匹配的程序构建配置信息包括:
获取所述应用程序构建上传请求中体现需要构建的应用程序版本类型的标识信息,根据所述标识信息确定所述应用程序构建上传请求的类别,其中所述版本类型包括测试版、提审版和正式版中的至少一种;
根据获取程序构建配置信息的存储地址信息;
根据所述存储地址信息访问配置信息库,从所述配置信息库中获取与所述类别匹配的程序构建配置信息。
3.根据权利要求1或2所述的应用程序自动构建上传方法,其特征在于,所述应用程序自动构建上传方法还包括:
在所述根据所述应用程序构建上传请求获取程序代码文件之前,判断是否存在所述程序构建目录,若不存在则创建对应的程序构建目录,若存在则对所述程序构建目录执行清理操作,以清除历史残留内容。
4.根据权利要求1或2所述的应用程序自动构建上传方法,其特征在于,所述应用程序自动构建上传方法还包括:
在所述基于所述程序构建配置信息对所述程序代码文件进行编译之前,对所述程序构建配置信息和所述程序构建目录中的程序代码文件进行完整性检验,若检验失败,重新获取完整性检验失败的所述程序构建配置信息和/或所述程序代码文件。
5.根据权利要求1或2所述的应用程序自动构建上传方法,其特征在于,在所述接收应用程序构建上传请求的步骤之前,所述应用程序自动构建上传方法还包括:
获取配置所述程序构建配置信息所需的不变类参数和变化类参数;
根据所述不变类参数和所述变化类参数配置至少一套所述程序构建配置信息,每套所述程序构建配置信息对应一个类别的所述应用程序构建上传请求。
6.根据权利要求1或2所述的应用程序自动构建上传方法,其特征在于,在所述上传所述包文件至目标软件平台中之后,所述应用程序自动构建上传方法还包括:
获取所述包文件在所述目标软件平台中的下载链接,并根据所述下载链接生成包含所述下载链接的二维码文件。
7.根据权利要求1或2所述的应用程序自动构建上传方法,其特征在于,所述应用程序自动构建上传方法还包括:对整个编译构建上传过程记录详细日志,并对最终结果做可视化呈现。
8.一种应用程序自动构建上传装置,其特征在于,包括:
请求接收模块,用于接收应用程序构建上传请求;
代码获取模块,用于根据所述应用程序构建上传请求获取程序代码文件,并将所述程序代码文件传送至程序构建目录中;
配置信息获取模块,用于识别所述应用程序构建上传请求的类别,获取与所述类别匹配的程序构建配置信息;
编译模块,用于基于所述程序构建配置信息对所述程序代码文件进行编译,生成包含有程序代码和所述程序构建配置信息的编译文件,其中所述程序代码和所述程序构建配置信息在所述编译文件中以机器码的形式体现;
文件生成模块,用于将生成的编译文件打包生成待上传的包文件;
文件校验发布模块,用于对所述包文件进行签名和校验,若校验通过,上传所述包文件至目标软件平台中,完成应用程序的自动构建上传。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机可读指令,所述计算机可读指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1至7中任一项所述的应用程序自动构建上传方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时实现如权利要求1至7中任一项权利要求所述的应用程序自动构建上传方法的步骤。
CN201910867023.5A 2019-09-12 2019-09-12 应用程序自动构建上传方法、装置及计算机设备、存储介质 Pending CN110851135A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910867023.5A CN110851135A (zh) 2019-09-12 2019-09-12 应用程序自动构建上传方法、装置及计算机设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910867023.5A CN110851135A (zh) 2019-09-12 2019-09-12 应用程序自动构建上传方法、装置及计算机设备、存储介质

Publications (1)

Publication Number Publication Date
CN110851135A true CN110851135A (zh) 2020-02-28

Family

ID=69594810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910867023.5A Pending CN110851135A (zh) 2019-09-12 2019-09-12 应用程序自动构建上传方法、装置及计算机设备、存储介质

Country Status (1)

Country Link
CN (1) CN110851135A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111694573A (zh) * 2020-05-29 2020-09-22 Oppo(重庆)智能科技有限公司 程序编译文件获取方法、装置、存储介质与电子设备
CN111708570A (zh) * 2020-06-12 2020-09-25 河北善理软件科技有限公司 安全证书的批集成方法、装置、终端
CN111736841A (zh) * 2020-05-25 2020-10-02 广东职业技术学院 一种基于移动互联网的应用集成开发方法及系统
CN111770170A (zh) * 2020-06-29 2020-10-13 北京百度网讯科技有限公司 请求处理方法、装置、设备和计算机存储介质
CN111767208A (zh) * 2020-06-02 2020-10-13 北京金堤科技有限公司 一种自动测试方法及装置
CN111949273A (zh) * 2020-07-31 2020-11-17 深圳市珍爱云信息技术有限公司 一种基于iOS系统的文件提取方法及装置
CN112286574A (zh) * 2020-11-27 2021-01-29 远光软件股份有限公司 统计应用程序版本的方法、装置、终端设备和存储介质
CN112363705A (zh) * 2020-11-10 2021-02-12 中国平安人寿保险股份有限公司 系统包生成方法、装置、计算机设备及存储介质
CN112631599A (zh) * 2020-12-09 2021-04-09 潍柴动力股份有限公司 编译方法、装置和存储介质
CN112882700A (zh) * 2021-02-09 2021-06-01 京东方科技集团股份有限公司 iOS应用程序构建方法及装置、电子设备及存储介质
CN113076214A (zh) * 2021-04-01 2021-07-06 山东英信计算机技术有限公司 一种namelist文件的验证和纠正方法、装置、设备及可读介质
CN113238738A (zh) * 2021-06-16 2021-08-10 杭州遥望网络科技有限公司 一种小程序二维码自动生成方法、装置、设备及介质
CN113268267A (zh) * 2021-05-21 2021-08-17 深圳Tcl新技术有限公司 一种数据包生成方法、装置、计算机设备及存储介质
CN113312030A (zh) * 2021-06-15 2021-08-27 京东数科海益信息科技有限公司 构建应用程序的方法、电子设备及存储介质
WO2022037690A1 (zh) * 2020-08-20 2022-02-24 第四范式(北京)技术有限公司 应用构建系统、方法和平台及应用发布系统、方法和平台
CN115065670A (zh) * 2022-08-17 2022-09-16 平安银行股份有限公司 IOS APP自动化发布方法、macOS服务器及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729066A (zh) * 2017-11-08 2018-02-23 重庆扬讯软件技术股份有限公司 一种基于svn资源库自动化构建发布方法与装置
CN109783129A (zh) * 2018-12-15 2019-05-21 深圳壹账通智能科技有限公司 应用程序处理方法、装置、计算机设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729066A (zh) * 2017-11-08 2018-02-23 重庆扬讯软件技术股份有限公司 一种基于svn资源库自动化构建发布方法与装置
CN109783129A (zh) * 2018-12-15 2019-05-21 深圳壹账通智能科技有限公司 应用程序处理方法、装置、计算机设备及存储介质

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111736841A (zh) * 2020-05-25 2020-10-02 广东职业技术学院 一种基于移动互联网的应用集成开发方法及系统
CN111736841B (zh) * 2020-05-25 2023-07-04 广东职业技术学院 一种基于移动互联网的应用集成开发方法及系统
CN111694573A (zh) * 2020-05-29 2020-09-22 Oppo(重庆)智能科技有限公司 程序编译文件获取方法、装置、存储介质与电子设备
CN111767208A (zh) * 2020-06-02 2020-10-13 北京金堤科技有限公司 一种自动测试方法及装置
CN111767208B (zh) * 2020-06-02 2023-09-19 北京金堤科技有限公司 一种自动测试方法及装置
CN111708570A (zh) * 2020-06-12 2020-09-25 河北善理软件科技有限公司 安全证书的批集成方法、装置、终端
CN111770170A (zh) * 2020-06-29 2020-10-13 北京百度网讯科技有限公司 请求处理方法、装置、设备和计算机存储介质
US11689630B2 (en) 2020-06-29 2023-06-27 Beijing Baidu Netcom Science And Technology Co., Ltd. Request processing method and apparatus, electronic device, and computer storage medium
CN111949273A (zh) * 2020-07-31 2020-11-17 深圳市珍爱云信息技术有限公司 一种基于iOS系统的文件提取方法及装置
CN111949273B (zh) * 2020-07-31 2023-04-07 深圳市艾特云信息技术有限公司 一种基于iOS系统的文件提取方法及装置
WO2022037690A1 (zh) * 2020-08-20 2022-02-24 第四范式(北京)技术有限公司 应用构建系统、方法和平台及应用发布系统、方法和平台
CN112363705A (zh) * 2020-11-10 2021-02-12 中国平安人寿保险股份有限公司 系统包生成方法、装置、计算机设备及存储介质
CN112363705B (zh) * 2020-11-10 2023-07-28 中国平安人寿保险股份有限公司 系统包生成方法、装置、计算机设备及存储介质
CN112286574A (zh) * 2020-11-27 2021-01-29 远光软件股份有限公司 统计应用程序版本的方法、装置、终端设备和存储介质
CN112631599A (zh) * 2020-12-09 2021-04-09 潍柴动力股份有限公司 编译方法、装置和存储介质
CN112631599B (zh) * 2020-12-09 2024-03-19 潍柴动力股份有限公司 编译方法、装置和存储介质
WO2022170801A1 (zh) * 2021-02-09 2022-08-18 京东方科技集团股份有限公司 iOS应用程序构建方法及装置、电子设备及存储介质
CN112882700A (zh) * 2021-02-09 2021-06-01 京东方科技集团股份有限公司 iOS应用程序构建方法及装置、电子设备及存储介质
CN112882700B (zh) * 2021-02-09 2024-04-23 京东方科技集团股份有限公司 iOS应用程序构建方法及装置、电子设备及存储介质
CN113076214A (zh) * 2021-04-01 2021-07-06 山东英信计算机技术有限公司 一种namelist文件的验证和纠正方法、装置、设备及可读介质
CN113268267A (zh) * 2021-05-21 2021-08-17 深圳Tcl新技术有限公司 一种数据包生成方法、装置、计算机设备及存储介质
CN113312030A (zh) * 2021-06-15 2021-08-27 京东数科海益信息科技有限公司 构建应用程序的方法、电子设备及存储介质
CN113238738A (zh) * 2021-06-16 2021-08-10 杭州遥望网络科技有限公司 一种小程序二维码自动生成方法、装置、设备及介质
CN115065670A (zh) * 2022-08-17 2022-09-16 平安银行股份有限公司 IOS APP自动化发布方法、macOS服务器及系统

Similar Documents

Publication Publication Date Title
CN110851135A (zh) 应用程序自动构建上传方法、装置及计算机设备、存储介质
US9940225B2 (en) Automated error checking system for a software application and method therefor
CN107729066B (zh) 一种基于svn资源库自动化构建发布方法与装置
CN106708719B (zh) 业务功能的测试方法和装置
CN106104467B (zh) 一种自动化部署方法和终端
CN110275861B (zh) 数据存储方法及装置、存储介质、电子装置
CN106415480B (zh) 用于安装在移动设备上的用于允许对该移动设备进行远程配置的高速应用
CN107896244B (zh) 一种版本文件的分发方法、客户端及服务器
CN104363264A (zh) 移动终端软件的多渠道sdk接入系统及方法
CN109358888A (zh) 服务器固件升级方法、装置、系统及计算机可读存储介质
CN110727575B (zh) 一种信息处理方法、系统、装置、以及存储介质
CN104468843A (zh) 一种文件上传方法及装置
CN113064630B (zh) 移动端app自动打包方法、系统、电子设备及存储介质
CN111162953A (zh) 数据处理方法、系统升级方法和服务器
CN110765010B (zh) 基于Flink的可视化开发在线调试方法及装置
CN111414169B (zh) Bmc镜像升级方法及相关组件
CN105072398B (zh) 一种设备升级方法和装置
CN112817867A (zh) 一种接口测试脚本生成方法、装置、计算机设备和介质
CN105117340A (zh) 用于iOS浏览器应用质量评估的URL检测方法和装置
CN107590064A (zh) 一种应用升级测试方法、装置和系统
CN107404389A (zh) 业务部署方法、装置和系统
CN108874425A (zh) 配置文件更新方法、装置、基板管理控制器及存储介质
CN109508203B (zh) 版本一致性确定方法、装置及系统
CN112926011B (zh) 一种站群的创建方法及系统
CN115309426A (zh) 系统升级方法、装置、计算机设备及计算机可读存储介质

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