CN113064630A - 移动端app自动打包方法、系统、电子设备及存储介质 - Google Patents

移动端app自动打包方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN113064630A
CN113064630A CN202110343115.0A CN202110343115A CN113064630A CN 113064630 A CN113064630 A CN 113064630A CN 202110343115 A CN202110343115 A CN 202110343115A CN 113064630 A CN113064630 A CN 113064630A
Authority
CN
China
Prior art keywords
packaging
android
app
ios
codes
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
CN202110343115.0A
Other languages
English (en)
Other versions
CN113064630B (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.)
Beijing Smart Starlight Information Technology Co ltd
Original Assignee
Beijing Smart Starlight Information Technology Co 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 Beijing Smart Starlight Information Technology Co ltd filed Critical Beijing Smart Starlight Information Technology Co ltd
Priority to CN202110343115.0A priority Critical patent/CN113064630B/zh
Publication of CN113064630A publication Critical patent/CN113064630A/zh
Application granted granted Critical
Publication of CN113064630B publication Critical patent/CN113064630B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/60Software deployment

Landscapes

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

Abstract

本发明公开了一种移动端APP自动打包方法、系统、电子设备及存储介质,该方法包括:获取不同渠道移动端APP的参数配置,所述参数配置包括APP的基本信息和高级设置信息;根据参数配置在多渠道配置管理后台中进行移动端APP参数的配置,得到每一个渠道的配置信息;将所有渠道的配置信息通过接口发送至打包服务器;启动打包脚本,解析接口中的配置信息,将检测出的对应iOS通用代码和Android通用代码发送至打包服务器;将配置信息同步到对应的iOS通用代码和Android通用代码中,得到iOS项目代码和Android项目代码;对iOS项目代码进行打包操作,生成iOS打包文件;对Android项目代码进行打包操作,生成Android打包文件。该方法实现不同渠道移动端APP的自动化打包,提高APP多渠道打包发布的效率。

Description

移动端APP自动打包方法、系统、电子设备及存储介质
技术领域
本发明涉及互联网数据处理领域,具体涉及到一种移动端APP自动打包方法、系统、电子设备及存储介质。
背景技术
各大应用市场和代理商针对上架到自己平台的应用有不同的要求,需要在每个应用市场和代理商发布不同的应用安装包。应用安装包中可能存在很多差异性,以此用来区分和统计各个应用市场和代理商的下载量、用户量等。目前市面上比较成熟的方式是通过第三方,比如友盟,但是第三方的方案只能针对一些应用的基本信息,比如渠道号,应用包名,版本号等,在实际需求中,除了这些基本信息以外,还需要对应用的一些高级设置做定制,这些工作细节给开发人员带来了很大的工作量,而且很容易出现失误,不利于工作的顺利开展。
发明内容
有鉴于此,本发明实施例提供了一种移动端APP自动打包方法、系统、电子设备及存储介质,以实现不同渠道移动端APP的自动打包。
为此,本发明实施例提供了如下技术方案:
根据第一方面,本发明实施例提供了一种移动端APP自动打包方法,包括:获取不同渠道移动端APP的参数配置,所述参数配置包括APP的基本信息和高级设置信息;根据参数配置在多渠道配置管理后台中进行移动端APP参数的配置,得到每一个渠道的配置信息;将所有渠道的配置信息通过接口发送至打包服务器;启动打包脚本,解析接口中的配置信息,将检测出的对应iOS通用代码和Android通用代码发送至打包服务器;将配置信息同步到对应的iOS通用代码和Android通用代码中,得到iOS项目代码和Android项目代码;对iOS项目代码进行打包操作,生成iOS打包文件;对Android项目代码进行打包操作,生成Android打包文件。
可选地,将所有渠道的配置信息通过接口发送至打包服务器的步骤中,包括:启动多渠道配置管理后台中的启动打包操作,并向打包服务器请求打包接口;通过打包接口将各个渠道的配置信息以json格式发送至打包服务器。
可选地,启动打包脚本,解析接口中的配置信息,将检测出的对应iOS通用代码和Android通用代码发送至打包服务器的步骤中,包括:启动打包脚本,解析接口中的配置信息,根据预先约定的数据解析协议获取打包代码的地址;根据打包代码的地址对应的从GitLab或者SVN中检出需要打包的iOS通用代码和Android通用代码;将iOS通用代码和Android通用代码发送至打包服务器。
可选地,对Android项目代码进行打包操作,生成Android打包文件的步骤中,包括:对Android项目代码进行打包操作,编译Android代码生成apk初始安装包文件;将apk初始安装包文件进行加固,得到加固安装包文件;对加固安装包文件进行重新签名,生成apk最终安装包文件,所述apk最终安装包文件即为Android打包文件。
可选地,对Android项目代码进行打包操作,生成Android打包文件的步骤之后,还包括:根据iOS打包文件和Android打包文件生成二维码;根据软件测试需求将二维码发送至软件测试方,以使软件测试方根据二维码下载对应的app软件并对app软件进行功能测试。
可选地,根据软件测试需求将二维码发送至软件测试方的步骤之后,还包括:接收软件测试方反馈的功能测试结果;若所述功能测试结果为功能测试通过,则将iOS打包文件和Android打包文件进行存储;若所述功能测试结果为功能测试不通过,则对iOS项目代码和Android项目代码进行修复,并将修复后的iOS项目代码和Android项目代码重新打包。
根据第二方面,本发明实施例提供了一种移动端APP自动打包系统,包括:获取模块,用于获取不同渠道移动端APP的参数配置,所述参数配置包括APP的基本信息和高级设置信息;第一处理模块,用于根据参数配置在多渠道配置管理后台中进行移动端APP参数的配置,得到每一个渠道的配置信息;第二处理模块,用于将所有渠道的配置信息通过接口发送至打包服务器;第三处理模块,用于启动打包脚本,解析接口中的配置信息,将检测出的对应iOS通用代码和Android通用代码发送至打包服务器;第四处理模块,用于将配置信息同步到对应的iOS通用代码和Android通用代码中,得到iOS项目代码和Android项目代码;第五处理模块,用于对iOS项目代码进行打包操作,生成iOS打包文件;第六处理模块,用于对Android项目代码进行打包操作,生成Android打包文件。
可选地,所述第二处理模块包括:第一处理单元,用于启动多渠道配置管理后台中的启动打包操作,并向打包服务器请求打包接口;第二处理单元,用于通过打包接口将各个渠道的配置信息以json格式发送至打包服务器。
可选地,所述第三处理模块包括:第三处理单元,用于启动打包脚本,解析接口中的配置信息,根据预先约定的数据解析协议获取打包代码的地址;第四处理单元,用于根据打包代码的地址对应的从GitLab或者SVN中检出需要打包的iOS通用代码和Android通用代码;第五处理单元,用于将iOS通用代码和Android通用代码发送至打包服务器。
可选地,所述第六处理模块包括:第六处理单元,用于对Android项目代码进行打包操作,编译Android代码生成apk初始安装包文件;第七处理单元,用于将apk初始安装包文件进行加固,得到加固安装包文件;第八处理单元,用于对加固安装包文件进行重新签名,生成apk最终安装包文件,所述apk最终安装包文件即为Android打包文件。
可选地,还包括:第七处理模块,用于根据iOS打包文件和Android打包文件生成二维码;第八处理模块,用于根据软件测试需求将二维码发送至软件测试方,以使软件测试方根据二维码下载对应的app软件并对app软件进行功能测试。
可选地,还包括:第九处理模块,用于接收软件测试方反馈的功能测试结果;第十处理模块,用于若所述功能测试结果为功能测试通过,则将iOS打包文件和Android打包文件进行存储;第十一处理模块,用于若所述功能测试结果为功能测试不通过,则对iOS项目代码和Android项目代码进行修复,并将修复后的iOS项目代码和Android项目代码重新打包。
根据第三方面,本发明实施例提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器执行上述第一方面任意一项描述的移动端APP自动打包方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行上述第一方面任意一项描述的移动端APP自动打包方法。
本发明实施例技术方案,具有如下优点:
本发明实施例提供了一种移动端APP自动打包方法、系统、电子设备及存储介质,其中,该方法包括:获取不同渠道移动端APP的参数配置,所述参数配置包括APP的基本信息和高级设置信息;根据参数配置在多渠道配置管理后台中进行移动端APP参数的配置,得到每一个渠道的配置信息;将所有渠道的配置信息通过接口发送至打包服务器;启动打包脚本,解析接口中的配置信息,将检测出的对应iOS通用代码和Android通用代码发送至打包服务器;将配置信息同步到对应的iOS通用代码和Android通用代码中,得到iOS项目代码和Android项目代码;对iOS项目代码进行打包操作,生成iOS打包文件;对Android项目代码进行打包操作,生成Android打包文件。上述步骤将不同渠道移动端APP的参数配置通过多渠道管理后台进行配置后得到每一个渠道的配置信息,根据配置信息确定每一个渠道所对应的通用代码,将配置信息更新至对应的通用代码中得到对应的项目代码,将项目代码进行打包,实现了自动化打包,很大程度的节省人员成本,减少开发人员重复工作,提高APP多渠道打包发布的效率,并且不易出错。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的移动端APP自动打包方法的一个具体示例的流程图;
图2为本发明实施例的移动端APP自动打包方法的另一个具体示例的流程图;
图3为本发明实施例的移动端APP自动打包系统的一个具体示例的框图;
图4为本发明实施例的电子设备的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种移动端APP自动打包方法,如图1所示,该方法包括步骤S1-S7。
步骤S1:获取不同渠道移动端APP的参数配置,所述参数配置包括APP的基本信息和高级设置信息。
本实施例中,不同渠道指的是不同的应用市场或者不同代理商。本实施例中,不同渠道可以是360应用市场、华为应用市场、小米应用市场、苹果商店等;本实施例对不同渠道仅作示意性说明,不以此为限,在实际应用中,还可以为其它渠道。移动端APP包括iOS系统APP和安卓系统APP。
参数配置包括APP的基本信息和高级设置信息,具体根据客户需求确定。不同的客户所需要的app不同,不同的app具有不同参数配置。基本信息是APP的基本通用设置信息,具体可包括应用名称、应用图标、应用包名、应用版本号、启动页、引导页和图片资源文件。高级设置信息是app的特定设置信息,具体可以是微信、QQ和钉钉分享相关、不同应用市场和代理商的logo标识、部分业务模块功能的显示和隐藏、打包代码的地址管理和后期维护的版本升级参数
步骤S2:根据参数配置在多渠道配置管理后台中进行移动端APP参数的配置,得到每一个渠道的配置信息。
本实施例中,多渠道配置管理后台主要功能有新建(接口app_server/add)和编辑(接口app_server/edit)渠道,新建需要进行默认参数配置,启动(接口app_server/build)和停止(接口app_server/cancel)单个或者批量打包任务、下载安装包(接口app_server/download)和发布上线到版本更新服务器(app_server/commit)。相关接口都部署在打包服务器上。通过多渠道配置管理后台实现不同渠道移动端APP的参数配置。
步骤S3:将所有渠道的配置信息通过接口发送至打包服务器。
本实施例中,将配置信息中的非文本信息在配置的时候同步至打包服务器本地,并存储至打包服务器本地,以便使得打包服务器的打包操作更加便捷,无需对非文本数据进行处理。非文本信息可以是图片资源文件和图片格式的数据(如应用图标)。配置信息中的其它文本类信息则以二进制的形式存储至多渠道配置管理后台的数据库中。当然,在其它实施例中,也可将所有的配置信息均存储在数据库中,由于数据库需要以二进制的形式进行存储,故需要对配置信息中的非文本数据进行转换,将转换后得到的二进制数据存储至数据库。
在多渠道配置管理后台中启动打包操作,向打包服务器请求打包接口(app_server/build),将各个渠道的配置信息以json格式发送到打包服务器,接口中包含渠道的基本信息和高级设置的配置信息。
步骤S4:启动打包脚本,解析接口中的配置信息,将检测出的对应iOS通用代码和Android通用代码发送至打包服务器。
本实施例中,启动打包脚本,打包脚本具体可以是Phthon脚本,也可以是其它脚本,本实施例对此仅作示意性描述,不以此为限。具体地,打包脚本中包含多个不同系统不同版本的脚本,例如,iOS系统1.0版本打包脚本、iOS系统2.0版本打包脚本、Android系统1.0版本打包脚本、Android系统2.0版本打包脚本等。
配置信息中包括APP所属系统和应用版本号信息,解析出接口中的配置信息,便可得到渠道所对应的通用代码。例如,某一个渠道的移动端APP是应用于iOS系统的APP,应用版本号是2.0,那么,检测出的该渠道所对应的打包脚本是iOS系统2.0版本打包脚本,从而得到该渠道所对应的iOS通用代码。又例如,另一个渠道的移动端APP是应用于Android系统的APP,根据该渠道的配置信息得到该渠道所对应的Android通用代码。通过该步骤,便可得到所有渠道中每一个渠道所对应的通用代码。之后,将检测出的对应iOS通用代码和Android通用代码发送至打包服务器。
步骤S5:将配置信息同步到对应的iOS通用代码和Android通用代码中,得到iOS项目代码和Android项目代码。
本实施例中,将配置信息同步到对应的iOS通用代码和Android通用代码中,也就是将配置信息中的具体信息替换到通用代码中,更新替换对应的配置信息和图片资源文件后,得到每一个配置信息所对应的项目代码。例如,某一个渠道移动端APP是iOS系统的APP,将该渠道移动端所对应的配置信息同步修改iOS通用代码后得到对应的iOS项目代码。又例如,另一个渠道移动端APP是Android系统的APP,将该渠道移动端所对应的配置信息同步修改Android通用代码后得到对应的Android项目代码。
步骤S6:对iOS项目代码进行打包操作,生成iOS打包文件。
本实施例中,iOS资源替换后,执行打包操作,编译iOS代码生成ipa安装包文件,ipa安装包文件即为生成的iOS打包文件。
步骤S7:对Android项目代码进行打包操作,生成Android打包文件。
本实施例中,Android资源替换后,执行打包操作,编译Android代码生成apk安装包文件,因为Android是开源的,为防止反编译安装包,使用比较权威的第三方加固工具360加固,加固后重新签名生成最终的apk安装包文件,最终的apk安装包文件即为生成的Android打包文件。
上述步骤将不同渠道移动端APP的参数配置通过多渠道管理后台进行配置后得到每一个渠道的配置信息,根据配置信息确定每一个渠道所对应的通用代码,将配置信息更新至对应的通用代码中得到对应的项目代码,将项目代码进行打包,实现了自动化打包,很大程度的节省人员成本,减少开发人员重复工作,提高了APP多渠道打包发布的效率,并且不易出错。
作为示例性的实施例,步骤S3将所有渠道的配置信息通过接口发送至打包服务器的步骤中,包括步骤S31-S34。
步骤S31:启动多渠道配置管理后台中的启动打包操作,并向打包服务器请求打包接口。
本实施例中,阶段性的开发完成后,官网版本正式发布,会自动触发多渠道配置管理后台中打包操作,多渠道配置管理后台请求打包接口(app_server/build)。
步骤S32:通过打包接口将各个渠道的配置信息以json格式发送至打包服务器。
本实施例中,先将所有渠道中各个渠道的配置信息处理为json格式的数据,然后,通过打包接口将json格式的数据发送至打包服务器。配置信息的json格式如下所示。
{"ios_code_path":"iOS代码路径","android_code_path":"Android代码路径","app_version":{"environment":"m3","android":"3.7.4.1","ios":"3.7.4.1"},"job_id":1614665369,"package_list":{"9978":{"platform":"113","App_share_info":{"App_key_qq_android":"9bwbgIL4MHuwI0J7","App_id_weixin":"wx74e0828ca71e995d","App_key_qq":"9bwbgIL4MHuwI0J7","App_secret_weixin":"c524fbea84a2d0db021eec4f5f1363bd","App_id_qq":"1108047225","App_id_qq_android":"1108047225"},"app_name":"应用名称"}}}
上述步骤通过打包接口将各个渠道的配置信息以json格式发送至打包服务器,以便打包服务器根据各个渠道的配置信息得到相应的项目代码并进行打包操作。
作为示例性的实施例,步骤S4启动打包脚本,解析接口中的配置信息,将检测出的对应iOS通用代码和Android通用代码发送至打包服务器的步骤中,包括步骤S41-S43。
步骤S41:启动打包脚本,解析接口中的配置信息,根据预先约定的数据解析协议获取打包代码的地址,协议的具体内容:返回值为json格式,直接通过键值对去解析,获取对应的key中的value。
打包服务器接收到打包请求后自动执行打包脚本,解析接口请求中的配置信息,根据约定好的数据解析协议(json解析)获取打包代码的地址。
步骤S42:根据打包代码的地址对应的从GitLab或者SVN中下载需要打包的iOS通用代码和Android通用代码。
具体的,Git和SVN都是一种版本控制系统,GitLab是一种分布式版本控制,SVN是一种集中式版本控制。
GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
SVN的全称是Subversion,即版本控制系统。它是最流行的一个开放源代码的版本控制系统。作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(Repository)中。
本实施例中的各种通用代码根据实际应用的需要可以存储至GitLab中,也可以存储至SVN中。根据打包代码的地址可以确定通用代码,进而从从GitLab或者SVN中下载对应的通用代码。
步骤S43:将iOS通用代码和Android通用代码发送至打包服务器。
具体的,将检出需要打包的iOS和Android通用代码发送到打包服务器,并存储至打包服务器的本地。
上述步骤,根据打包代码的地址确定需要打包的iOS通用代码和Android通用代码,并将iOS通用代码和Android通用代码发送至打包服务器,以便打包服务器将配置信息更新至相应的通用代码中得到不同渠道APP的项目代码,实现了项目代码的自动生成。
作为示例性的实施例,步骤S7对Android项目代码进行打包操作,生成Android打包文件的步骤中,包括步骤S71-S73。
步骤S71:对Android项目代码进行打包操作,使用命令(gradlewassembleRelease)编译Android代码生成apk初始安装包文件。
步骤S72:将apk初始安装包文件进行加固,得到加固安装包文件。目前公司使用的是比较权威的第三方加固工具360加固对apk初始安装包文件进行加固,得到加固安装包文件。第三方加固工具可以是360加固,也可以使用爱加密等其它加固工具,在实际应用中根据需要合理确定加固工具。加固的具体命令:
1、java-jar jiagu.jar-login帐号密码(配置加固的帐号信息)
2、java-jar jiagu.jar-importsign签名路径签名密码别名别名密码(配置加固的签名信息)
3、java-jar jiagu.jar-config-x86(配置支持x86)
4、java-jar jiagu.jar初始安装文件路径-autosign(配置自动签名)
步骤S73:加固后对生成的安装包文件进行重新签名,生成apk最终安装包文件,所述apk最终安装包文件即为Android打包文件。
本实施例中,对加固安装包文件进行重新签名,重新签名的具体过程是利用360加固自带的签名工具进行签名。签名后生成apk最终安装包文件,这个apk最终安装包文件即为Android打包文件。
上述步骤,使用比较权威的第三方加固工具360加固,加固后重新签名生成最终的apk安装包文件,防止反编译安装包,提高了安装包的安全性。
作为示例性的实施例,步骤S7对Android项目代码进行打包操作,生成Android打包文件的步骤之后,还包括步骤S8-S9。
步骤S8:根据iOS打包文件和Android打包文件生成二维码。
本实施例中,将iOS打包文件和Android打包文件上传至移动应用内测分发服务平台生成供测试下载扫描的二维码,以使软件测试方根据二维码下载软件安装包,进行软件测试。
具体的,移动应用内测分发服务平台可以是蒲公英、乐分发等平台,本实施例对此仅作示意性描述,不以此为限。
步骤S9:根据软件测试需求将二维码发送至软件测试方,以使软件测试方根据二维码下载对应的app软件并对app软件进行功能测试。
本实施例中,软件测试需求包括软件测试方的名称。将二维码发送至软件测试方,软件测试方接收到二维码之后,扫描二维码便可下载软软件安装包,将软件安装包进行安装,软件安装好后,根据产品需求进行功能测试。
上述步骤通过二维码的方式将打包文件发送至软件测试方,使得软件下载更加简单便捷。
作为示例性的实施例,步骤S9根据软件测试需求将二维码发送至软件测试方的步骤之后,还包括步骤S10-S12。
步骤S10:接收软件测试方反馈的功能测试结果。
本实施例中,软件测试方根据产品需求进行功能测试,得到功能测试结果。若功能测试合格,则功能测试结果为通过,执行步骤S11;若功能测试不合格,则功能测试结果为不通过,执行步骤S12。软件测试方反馈功能测试结果,打包服务器接收软件测试方反馈的功能测试结果。
步骤S11:若所述功能测试结果为功能测试通过,则将iOS打包文件和Android打包文件进行存储。
本实施例中,功能测试结果为功能测试通过,则无需对代码进行修改,iOS打包文件和Android打包文件即可作为最终的打包文件。
步骤S12:若所述功能测试结果为功能测试不通过,则对iOS项目代码和Android项目代码进行修复,并将修复后的iOS项目代码和Android项目代码重新打包。
本实施例中,功能测试结果为不通过,则需要对代码进行修改,将修复后的iOS项目代码和Android项目代码进行重新打包,打包完成后再次发送至软件测试方进行功能测试,直至功能测试通过。功能测试通过后还需要进行系统测试;系统测试通过后,多渠道配置管理后台中一键发布,将文件同步到对应的代理商的下载服务器,另外备份一份到服务器,以备不时之需。
通过上述步骤对打包文件中的项目代码进行功能测试,保证项目代码的正确性。
下面以一个具体示例进行详细说明,如图2所示。
APP自动化打包主要分为两个部分,包括:
1、多渠道配置管理后台:主要功能有新建(接口app_server/add)和编辑(接口app_server/edit)渠道,新建需要进行默认参数配置,启动(接口app_server/build)和停止(接口app_server/cancel)单个或者批量打包任务、下载安装包(接口app_server/download)和发布上线到版本服务器(app_server/commit)。相关接口都部署在打包服务器上。参数配置分为两类,
a、基本信息:应用名称、应用图标、应用包名、应用版本号,启动页、引导页和其他图片资源文件;
b、高级设置:微信、QQ和钉钉分享相关、不同应用市场和代理商的logo标识、部分业务模块功能的显示和隐藏、打包代码的地址管理和后期维护的版本升级参数。
c、图片资源文件在编辑配置的时候同步到打包服务器本地,供自动打包时使用,其他配置信息保存到数据库中。
2、打包服务器:部署打包所需的所有接口和自动打包的Python脚本。脚本主要功能包括:代码检出、资源替换、打包、360加固(Android端添加了360加固)、上传蒲公英生成二维码发布到钉钉或者企业微信和一键发布等功能。
自动化打包流程分为以下几部分,包括:
a、首先完成各个渠道相关信息的配置,配置完后一劳永逸;
b、阶段性的开发完成后,官网版本正式发布,会自动触发多渠道配置管理后台中打包操作,多渠道配置管理后台请求打包接口(app_server/build),将各个渠道的配置信息以json格式(下图所示)发送到打包服务器,接口中的包含渠道的基本信息和高级设置的配置信息;
c、打包服务器接收到打包请求后自动执行打包脚本,解析接口请求中的配置信息,根据约定好的数据解析协议(json解析)获取打包代码的地址,对应的从GitLab或者SVN中检出需要打包的iOS和Android两端的打包代码到打包服务器的本地存储;
d、根据解析到的基本信息和高级设置等配置信息,自动同步修改iOS和Android各自的打包代码,更新替换对应的配置信息和图片资源文件,完成各自待打包的项目代码;
e、脚本自动执行打包操作,使用iOS待打包的项目代码编译生成ipa安装包文件;
f、脚本自动执行打包操作,使用Android待打包的项目代码编译Android代码生成apk安装包文件,因为Android是开源的,为防止反编译安装包,使用比较权威的第三方加固工具360加固,加固后重新签名生成最终的apk安装包文件;
g、将编译好的ipa和apk上传到蒲公英(一个有效的移动应用内测分发服务平台)生成供测试下载扫描的二维码,发送到公司使用的办公沟通和协同平台中(支持企业微信、钉钉等平台),测试根据产品需求进行功能测试,测试不通过,反馈给开发人员进行修复,每天下班前开发提交代码,此时会触发打包命令,将提测的内容包含生成的二维码发送企业微信中供测试进行bug的回归。不通过会继续执行步骤g,测试通过后进行系统测试;
h、系统测试通过后,多渠道配置管理后台中一键发布,将文件同步到对应的代理商的下载服务器,另外备份一份到服务器,以备不时之需。
本实施例中的方法是一种高效的针对不同代理商移动端APP自动化打包的解决方案,该方案实现自动化,除包含主流的第三方打包方案中的所有功能,还融入了针对自身应用做出的很多细节的功能,针对应用的图片资源、微信、QQ、钉钉分享,不同应用市场和代理商的logo标识,还有一些业务功能模块的显示和隐藏、打包代码的地址等高级设置做特殊定制,很大程度的节省人员成本,减少开发人员重复工作,提高APP多渠道打包发布的效率,并且不易出错。
在本实施例中还提供了一种移动端APP自动打包系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例还提供一种移动端APP自动打包系统,如图3所示,包括:
获取模块1,用于获取不同渠道移动端APP的参数配置,所述参数配置包括APP的基本信息和高级设置信息;
第一处理模块2,用于根据参数配置在多渠道配置管理后台中进行移动端APP参数的配置,得到每一个渠道的配置信息;
第二处理模块3,用于将所有渠道的配置信息通过接口发送至打包服务器;
第三处理模块4,用于启动打包脚本,解析接口中的配置信息,将检测出的对应iOS通用代码和Android通用代码发送至打包服务器;
第四处理模块5,用于将配置信息同步到对应的iOS通用代码和Android通用代码中,得到iOS项目代码和Android项目代码;
第五处理模块6,用于对iOS项目代码进行打包操作,生成iOS打包文件;
第六处理模块7,用于对Android项目代码进行打包操作,生成Android打包文件。
可选地,所述第二处理模块包括:第一处理单元,用于启动多渠道配置管理后台中的启动打包操作,并向打包服务器请求打包接口;第二处理单元,用于通过打包接口将各个渠道的配置信息以json格式发送至打包服务器。
可选地,所述第三处理模块包括:第三处理单元,用于启动打包脚本,解析接口中的配置信息,根据预先约定的数据解析协议获取打包代码的地址;第四处理单元,用于根据打包代码的地址对应的从GitLab或者SVN中检出需要打包的iOS通用代码和Android通用代码;第五处理单元,用于将iOS通用代码和Android通用代码发送至打包服务器。
可选地,所述第六处理模块包括:第六处理单元,用于对Android项目代码进行打包操作,编译Android代码生成apk初始安装包文件;第七处理单元,用于将apk初始安装包文件进行加固,得到加固安装包文件;第八处理单元,用于对加固安装包文件进行重新签名,生成apk最终安装包文件,所述apk最终安装包文件即为Android打包文件。
可选地,还包括:第七处理模块,用于根据iOS打包文件和Android打包文件生成二维码;第八处理模块,用于根据软件测试需求将二维码发送至软件测试方,以使软件测试方根据二维码下载对应的app软件并对app软件进行功能测试。
可选地,还包括:第九处理模块,用于接收软件测试方反馈的功能测试结果;第十处理模块,用于若所述功能测试结果为功能测试通过,则将iOS打包文件和Android打包文件进行存储;第十一处理模块,用于若所述功能测试结果为功能测试不通过,则对iOS项目代码和Android项目代码进行修复,并将修复后的iOS项目代码和Android项目代码重新打包。
本实施例中的移动端APP自动打包系统是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供了一种电子设备,如图4所示,该电子设备包括一个或多个处理器71以及存储器72,图4中以一个处理器71为例。
该控制器还可以包括:输入装置73和输出装置74。
处理器71、存储器72、输入装置73和输出装置74可以通过总线或者其他方式连接,图4中以通过总线连接为例。
处理器71可以为中央处理器(Central Processing Unit,CPU)。处理器71还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者是任何常规的处理器等。
存储器72作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的移动端APP自动打包方法对应的程序指令/模块。处理器71通过运行存储在存储器72中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的移动端APP自动打包方法。
存储器72可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器72可选包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置73可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置74可包括显示屏等显示设备。
一个或者多个模块存储在存储器72中,当被一个或者多个处理器71执行时,执行如图1-2所示的方法。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指示相关的硬件来完成,被执行的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述移动端APP自动打包方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (9)

1.一种移动端APP自动打包方法,其特征在于,包括:
获取不同渠道移动端APP的参数配置,所述参数配置包括APP的基本信息和高级设置信息;
根据参数配置在多渠道配置管理后台中进行移动端APP参数的配置,得到每一个渠道的配置信息;
将所有渠道的配置信息通过接口发送至打包服务器;
启动打包脚本,解析接口中的配置信息,将检测出的对应iOS通用代码和Android通用代码发送至打包服务器;
将配置信息同步到对应的iOS通用代码和Android通用代码中,得到iOS项目代码和Android项目代码;
对iOS项目代码进行打包操作,生成iOS打包文件;
对Android项目代码进行打包操作,生成Android打包文件。
2.根据权利要求1所述的移动端APP自动打包方法,其特征在于,将所有渠道的配置信息通过接口发送至打包服务器的步骤中,包括:
启动多渠道配置管理后台中的启动打包操作,并向打包服务器请求打包接口;
通过打包接口将各个渠道的配置信息以json格式发送至打包服务器。
3.根据权利要求1所述的移动端APP自动打包方法,其特征在于,启动打包脚本,解析接口中的配置信息,将检测出的对应iOS通用代码和Android通用代码发送至打包服务器的步骤中,包括:
启动打包脚本,解析接口中的配置信息,根据预先约定的数据解析协议获取打包代码的地址;
根据打包代码的地址对应的从GitLab或者SVN中检出需要打包的iOS通用代码和Android通用代码;
将iOS通用代码和Android通用代码发送至打包服务器。
4.根据权利要求1所述的移动端APP自动打包方法,其特征在于,对Android项目代码进行打包操作,生成Android打包文件的步骤中,包括:
对Android项目代码进行打包操作,编译Android代码生成apk初始安装包文件;
将apk初始安装包文件进行加固,得到加固安装包文件;
对加固安装包文件进行重新签名,生成apk最终安装包文件,所述apk最终安装包文件即为Android打包文件。
5.根据权利要求1-4中任一所述的移动端APP自动打包方法,其特征在于,对Android项目代码进行打包操作,生成Android打包文件的步骤之后,还包括:
根据iOS打包文件和Android打包文件生成二维码;
根据软件测试需求将二维码发送至软件测试方,以使软件测试方根据二维码下载对应的app软件并对app软件进行功能测试。
6.根据权利要求5所述的移动端APP自动打包方法,其特征在于,根据软件测试需求将二维码发送至软件测试方的步骤之后,还包括:
接收软件测试方反馈的功能测试结果;
若所述功能测试结果为功能测试通过,则将iOS打包文件和Android打包文件进行存储;
若所述功能测试结果为功能测试不通过,则对iOS项目代码和Android项目代码进行修复,并将修复后的iOS项目代码和Android项目代码重新打包。
7.一种移动端APP自动打包系统,其特征在于,包括:
获取模块,用于获取不同渠道移动端APP的参数配置,所述参数配置包括APP的基本信息和高级设置信息;
第一处理模块,用于根据参数配置在多渠道配置管理后台中进行移动端APP参数的配置,得到每一个渠道的配置信息;
第二处理模块,用于将所有渠道的配置信息通过接口发送至打包服务器;
第三处理模块,用于启动打包脚本,解析接口中的配置信息,将检测出的对应iOS通用代码和Android通用代码发送至打包服务器;
第四处理模块,用于将配置信息同步到对应的iOS通用代码和Android通用代码中,得到iOS项目代码和Android项目代码;
第五处理模块,用于对iOS项目代码进行打包操作,生成iOS打包文件;
第六处理模块,用于对Android项目代码进行打包操作,生成Android打包文件。
8.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-6任意一项所述的移动端APP自动打包方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-6任意一项所述的移动端APP自动打包方法。
CN202110343115.0A 2021-03-30 2021-03-30 移动端app自动打包方法、系统、电子设备及存储介质 Active CN113064630B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110343115.0A CN113064630B (zh) 2021-03-30 2021-03-30 移动端app自动打包方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110343115.0A CN113064630B (zh) 2021-03-30 2021-03-30 移动端app自动打包方法、系统、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113064630A true CN113064630A (zh) 2021-07-02
CN113064630B CN113064630B (zh) 2024-02-23

Family

ID=76565188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110343115.0A Active CN113064630B (zh) 2021-03-30 2021-03-30 移动端app自动打包方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113064630B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113721929A (zh) * 2021-08-11 2021-11-30 安徽帕觅智能科技有限公司 一种自动化植入公用代码到Android App的方法
CN113741960A (zh) * 2021-11-05 2021-12-03 广州易方信息科技股份有限公司 一种基于安卓端的App自动定制打包方法及装置
CN116166228A (zh) * 2023-02-01 2023-05-26 深圳市探鸽智能科技有限公司 一种app定制构建方法、装置及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104793946A (zh) * 2015-04-27 2015-07-22 广州杰赛科技股份有限公司 基于云计算平台的应用部署方法和系统
US20160132314A1 (en) * 2014-11-10 2016-05-12 Amazon Technologies, Inc. Remote configuration management of applications
CN106528150A (zh) * 2016-11-07 2017-03-22 北京快嘉科技有限公司 一种j2ee项目的开发方法及开发平台
US9606900B1 (en) * 2016-03-24 2017-03-28 Fmr Llc Intelligent automation of computer software test scripts and code requirements
CN107179931A (zh) * 2017-07-06 2017-09-19 广州优视网络科技有限公司 安装包打包方法、装置及系统
CN108733376A (zh) * 2018-04-27 2018-11-02 链家网(北京)科技有限公司 组件化下利用一套源码编译多个Android APP的方法及装置
CN108762767A (zh) * 2018-05-31 2018-11-06 康键信息技术(深圳)有限公司 应用发布方法、装置及计算机可读存储介质
CN110780917A (zh) * 2019-10-25 2020-02-11 深圳市同洲电子股份有限公司 一种React Native应用自动化打包发布的方法及系统
EP3627312A1 (en) * 2018-09-24 2020-03-25 salesforce.com, inc. Mobile app publishing for a responsive community experience
CN111176663A (zh) * 2019-12-20 2020-05-19 北京字节跳动网络技术有限公司 应用程序的数据处理方法、装置、设备及存储介质
CN111209001A (zh) * 2019-12-19 2020-05-29 福建升腾资讯有限公司 批量生成安卓各渠道apk的方法、系统、设备和介质
CN111857801A (zh) * 2020-07-08 2020-10-30 广州云徙科技有限公司 一种移动应用的构建方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160132314A1 (en) * 2014-11-10 2016-05-12 Amazon Technologies, Inc. Remote configuration management of applications
CN104793946A (zh) * 2015-04-27 2015-07-22 广州杰赛科技股份有限公司 基于云计算平台的应用部署方法和系统
US9606900B1 (en) * 2016-03-24 2017-03-28 Fmr Llc Intelligent automation of computer software test scripts and code requirements
CN106528150A (zh) * 2016-11-07 2017-03-22 北京快嘉科技有限公司 一种j2ee项目的开发方法及开发平台
CN107179931A (zh) * 2017-07-06 2017-09-19 广州优视网络科技有限公司 安装包打包方法、装置及系统
CN108733376A (zh) * 2018-04-27 2018-11-02 链家网(北京)科技有限公司 组件化下利用一套源码编译多个Android APP的方法及装置
CN108762767A (zh) * 2018-05-31 2018-11-06 康键信息技术(深圳)有限公司 应用发布方法、装置及计算机可读存储介质
EP3627312A1 (en) * 2018-09-24 2020-03-25 salesforce.com, inc. Mobile app publishing for a responsive community experience
CN110780917A (zh) * 2019-10-25 2020-02-11 深圳市同洲电子股份有限公司 一种React Native应用自动化打包发布的方法及系统
CN111209001A (zh) * 2019-12-19 2020-05-29 福建升腾资讯有限公司 批量生成安卓各渠道apk的方法、系统、设备和介质
CN111176663A (zh) * 2019-12-20 2020-05-19 北京字节跳动网络技术有限公司 应用程序的数据处理方法、装置、设备及存储介质
CN111857801A (zh) * 2020-07-08 2020-10-30 广州云徙科技有限公司 一种移动应用的构建方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FAN MING 等: "The design and implement of the cross-platform mobile automated testing framework", 《 2016 5TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND NETWORK TECHNOLOGY》, 19 October 2017 (2017-10-19), pages 182 - 185 *
H2CODER: "Android 多渠道打包总结", pages 1 - 11, Retrieved from the Internet <URL:《https://www.jianshu.com/p/600cd4af6e44》> *
周长信: "跨平台学生信息管理系统设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 December 2019 (2019-12-15), pages 138 - 150 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113721929A (zh) * 2021-08-11 2021-11-30 安徽帕觅智能科技有限公司 一种自动化植入公用代码到Android App的方法
CN113741960A (zh) * 2021-11-05 2021-12-03 广州易方信息科技股份有限公司 一种基于安卓端的App自动定制打包方法及装置
CN113741960B (zh) * 2021-11-05 2022-04-01 广州易方信息科技股份有限公司 一种基于安卓端的App自动定制打包方法及装置
CN116166228A (zh) * 2023-02-01 2023-05-26 深圳市探鸽智能科技有限公司 一种app定制构建方法、装置及存储介质
CN116166228B (zh) * 2023-02-01 2023-08-29 深圳市探鸽智能科技有限公司 一种app定制构建方法、装置及存储介质

Also Published As

Publication number Publication date
CN113064630B (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
CN113064630B (zh) 移动端app自动打包方法、系统、电子设备及存储介质
WO2022170801A1 (zh) iOS应用程序构建方法及装置、电子设备及存储介质
CN108399083B (zh) 一种系统部署方法、装置、电子设备和存储介质
US20170185431A1 (en) Method and apparatus for dynamically implementing application function
CN106415480B (zh) 用于安装在移动设备上的用于允许对该移动设备进行远程配置的高速应用
CN111324522A (zh) 一种自动化测试系统及方法
CN111162953A (zh) 数据处理方法、系统升级方法和服务器
US20170262263A1 (en) Process and system for the generation of an operating program in the form of a mobile application that is capable of operating on a mobile device
CN110727575B (zh) 一种信息处理方法、系统、装置、以及存储介质
CN114461269A (zh) 软件开发发布管理方法、装置、设备及存储介质
CN113687858A (zh) 配置文件的检查方法、装置、电子设备及存储介质
CN112860251A (zh) 一种网站前端构建的方法与系统
CN109726104B (zh) 移动终端的测试包生成方法、测试终端及存储介质
CN112732285B (zh) 适用于云计算linux操作系统的升级方法、装置及电子设备
CN110647349B (zh) 一种实现iOS APP持续交付的方法
CN108170588B (zh) 一种测试环境搭建方法及装置
CN108073511B (zh) 测试代码生成方法和装置
CN110888669B (zh) 一种在ide上创建模板工程的方法及系统
CN115357258B (zh) 应用的部署方法、装置、存储介质及电子装置
US8615751B2 (en) Seeding product information
CN111580853A (zh) 多渠道软件安装包通用生成方法
CN113110872B (zh) 一种Android自动化配置构建平台及操作方法
CN113377346B (zh) 集成环境搭建方法、装置、电子设备及存储介质
CN115168175A (zh) 程序错误解决方法、装置、电子设备和存储介质
CN109428936B (zh) App的升级方法、装置、系统、电子设备及存储介质

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
GR01 Patent grant
GR01 Patent grant