CN112965744A - 一种rn混合式app的批量打包方法及装置 - Google Patents
一种rn混合式app的批量打包方法及装置 Download PDFInfo
- Publication number
- CN112965744A CN112965744A CN202110284534.1A CN202110284534A CN112965744A CN 112965744 A CN112965744 A CN 112965744A CN 202110284534 A CN202110284534 A CN 202110284534A CN 112965744 A CN112965744 A CN 112965744A
- Authority
- CN
- China
- Prior art keywords
- packaging
- batch
- replaced
- executing
- application program
- 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
Links
- 238000004806 packaging method and process Methods 0.000 title claims abstract description 59
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000009434 installation Methods 0.000 claims abstract description 25
- 238000012856 packing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 241001417516 Haemulidae Species 0.000 description 1
- 101001072091 Homo sapiens ProSAAS Proteins 0.000 description 1
- 102100036366 ProSAAS Human genes 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software 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
本发明公开了一种RN混合式APP的批量打包方法及装置,其中,所述批量打包方法包括:获取待打包应用程序的源代码;获取待替换的用户配置;通过Python下载所述用户配置,在所述源代码中找到需要被替换的部分,进行替换;在RN工程下执行安装node‑modules,接着python工程在执行npm install;执行与应用平台相对应的打包工具将替换后的应用程序打包好;将打包好的应用程序安装包上传到指定服务器位置,并将下载地址回写到执行地址;该批量打包方法通过Python下载所述用户配置,在代码中找到需要被替换的部分进行替换,接着在RN工程下执行安装node‑modules,最后利用应用平台对应的打包工具进行打包,解决RN混合式APP的批量打包问题,释放了开发人员大量的时间。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种RN混合式APP的批量打包方法及装置。
背景技术
在移动应用开发的过程中,开发人员在应用程序的源代码编写好之后,将应用程序的源代码打包成安装包,以便于线上发布该应用程序,或者便于测试人员通过将该安装包安装在电子设备上进行运行,以测试该应用程序是否存在问题,如该应用程序在运行时是否出现错误,该应用程序在不同系统的设备中的兼容性、运行该应用程序时显示的界面布局是否可以根据不同设备型号机型自适应调整等。
目前很多SAAS系统用户,有强烈的品牌意识,比如(需要有个性化的APP名称和Logo、需要支付到商户自己的微信商户平台),于是开发人员会手动修改代码中的Logo图片和APP名称,但是大量用户都有这样的需求,如果采用手动打包的方式,那么开发人员将投入大量的时间做重复无意义的工作,如何通过自动化来释放开放人员的时间,就成了急迫需求。本专利在MAC服务器上部署Python工程,结合APP工程代码(原生部分+RN部分),可以实现批量自动化打包个性化的安装包。既实现了客户的个性化需求,又释放了开发人员宝贵的时间。
另外,目前很多APP为了快速试错和交付,都采用混合式的开发方式,比如本专利文档里提到的RN方式的混合APP(简称RN混合式APP)。但是目前RN混合式APP的批量打包方案在业内几乎没有方案。
发明内容
为了解决上述问题,本发明提供一种能够解决混合式APP批量打包个性化APP的方法及装置。
为了实现上述目的,本发明一方面提供一种RN混合式APP的批量打包方法,包括:
获取待打包应用程序的源代码;
获取待替换的用户配置;
通过Python下载所述用户配置,在所述源代码中找到需要被替换的部分,进行替换;
在RN工程下执行安装node-modules,接着python工程在执行npm install;
执行与应用平台相对应的打包工具将替换后的应用程序打包好;
将打包好的应用程序安装包上传到指定服务器位置,并将下载地址回写到执行地址。
作为一种可选的技术方案,python工程在执行npm install之前,将所述node-modules拷贝到不同应用程序的文件夹中。
作为一种可选的技术方案,所述用户配置包括启动图、LOGO、微信APPID中的一种或多种。
作为一种可选的技术方案,所述应用平台包括Android和IOS。
作为一种可选的技术方案,执行与应用平台相对应的打包工具将替换后的应用程序打包好,进一步包括:
若应用平台为Android,则使用adb工具执行打包,生成Apk安装包;若应用平台为IOS,则使用xcode的命令工具执行打包,生成IPA安装包。
另一方面,本发明提供一种RN混合式APP的批量打包装置,包括:
第一获取单元,用于获取待打包应用程序的源代码;
第二获取单元,用于获取待替换的用户配置;
替换单元,用于通过Python下载所述用户配置,在所述源代码中找到需要被替换的部分,进行替换;
安装单元,用于在RN工程下执行安装node-modules,接着python工程在执行npminstall;打包单元,用于执行与应用平台相对应的打包工具将替换后的应用程序打包好;
上传单元,用于将打包好的应用程序安装包上传到指定服务器位置,并将下载地址回写到执行地址。
在上述批量打包装置中,可选的,所述批量打包装置还包括:拷贝单元,用于python工程在执行npm install之前,将所述node-modules拷贝到不同应用程序的文件夹中。
在上述批量打包装置中,可选的,所述用户配置包括启动图、LOGO、微信APPID中的一种或多种。
在上述批量打包装置中,可选的,所述打包单元包括:Android打包模块,用于使用adb工具执行打包,生成Apk安装包;
IOS打包模块,用于使用xcode的命令工具执行打包,生成IPA安装包。
本发明相对于现有技术的有益效果是:该批量打包方法通过Python下载所述用户配置,在代码中找到需要被替换的部分,进行替换,接着在RN工程下执行安装node-modules,最后利用应用平台对应的打包工具进行打包,解决RN混合式APP的批量打包问题,释放了开发人员大量的时间,同时也能够满足用户个性化的需求。
附图说明
图1是本发明一实施例提供的一种RN混合式APP的批量打包方法的流程图;
图2是本发明一实施例提供的一种RN混合式APP的批量打包装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在此需要说明的是,在本实施例中所出现的因为缩写,分别表示:
RN(React-Native,反应本机)、
APP(Application,应用软件)、
LOGO(Logotype,商标)、
Apk(Android application package,安卓应用程序包)、
IPA(iPhoneApplication,苹果应用程序包)。
参照图1,本实施例提供一种RN混合式APP的批量打包方法,具体包括以下步骤包括:
S10:获取待打包应用程序的源代码;
具体的,应用程序可以是为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面,对应于不同的系统平台,应用程序可以通过不同的编写语言构建,例如对于安卓平台,可以通过Java语言进行编写,其源代码可以为JavaScript代码。
应用程序的源代码在待打包应用程序所在的服务器中获取其源代码,可以从应用程序的开发文档中直接读取,也可以是对已打包过的应用程序进行解压后进行反汇编获取应用程序的源代码,本申请实施例对应用程序的源代码的获取方式不加以限制。
S20:获取待替换的用户配置;
具体的,用户配置包括但不局限于启动图、LOGO、微信APPID中的一种或多种,用户配置用于后续的替换,另外,本申请实施例对应用程序的源代码的获取方式不加以限制,可以通过用户直接录入,也可以通过从独立的服务器中获取。
S30:通过Python下载所述用户配置,在所述源代码中找到需要被替换的部分,进行替换;
具体的,在应用程序的源代码中找到需要替换的部分,然后将获取到的用户配置替换对应的部分即可。
S40:在RN工程下执行安装node-modules,接着python工程在执行npm install;
具体的,准备单独的node-modules,在RN工程下执行安装node-modules,第一版node-modules下载安装完毕之后,理论上很少会变动。每个商户打包时都会生成独立的文件夹,python工程在执行npm install之前,先将node-modules拷贝到不同商户的文件夹中,这样可以大幅度缩短整体构建时间。
应当理解的是,node_modules是安装node后用来存放用包管理工具下载安装的包的文件夹。比如webpack、gulp、grunt这些工具。
S50:执行与应用平台相对应的打包工具将替换后的应用程序打包好;
具体的,若应用平台为Android,则使用adb工具执行打包,生成Apk安装包;若应用平台为IOS,则使用xcode的命令工具执行打包,生成IPA安装包。
S60:将打包好的应用程序安装包上传到指定服务器位置,并将下载地址回写到执行地址。
具体的,将打包好的apk安装包或者ipa安装包上传到指定服务器位置,再将下载地址回写到执行地址,这样用户就可以自行下载个性化安装包。
该批量打包方法通过Python下载所述用户配置,在代码中找到需要被替换的部分,进行替换,接着在RN工程下执行安装node-modules,最后利用应用平台对于的打包工具进行打包,解决RN混合式APP的批量打包问题,释放了开发人员大量的时间,同时也能够满足用户个性化的需求。
参照图2,本发明实施例还提供一种RN混合式APP的批量打包装置,具体包括:
第一获取单元100,用于获取待打包应用程序的源代码;在此需要说明的是,由于具体的获取方式以及过程在上述RN混合式APP的批量打包方法的步骤S10中已经详细阐述,故在此不再赘述。
第二获取单元200,用于获取待替换的用户配置;在此需要说明的是,由于具体的获取方式以及过程在上述RN混合式APP的批量打包方法的步骤S20中已经详细阐述,故在此不再赘述。
替换单元300,用于通过Python下载所述用户配置,在所述源代码中找到需要被替换的部分,进行替换;在此需要说明的是,由于具体的替换方式以及过程在上述RN混合式APP的批量打包方法的步骤S30中已经详细阐述,故在此不再赘述。
安装单元400,用于在RN工程下执行安装node-modules,接着python工程在执行npm install;在此需要说明的是,由于具体的安装方式以及过程在上述RN混合式APP的批量打包方法的步骤S40中已经详细阐述,故在此不再赘述。
打包单元500,用于执行与应用平台相对应的打包工具将替换后的应用程序打包好;在此需要说明的是,由于具体的打包方式以及过程在上述RN混合式APP的批量打包方法的步骤S50中已经详细阐述,故在此不再赘述。
上传单元600,用于将打包好的应用程序安装包上传到指定服务器位置,并将下载地址回写到执行地址;在此需要说明的是,由于具体的上传方式以及过程在上述RN混合式APP的批量打包方法的步骤S60中已经详细阐述,故在此不再赘述。
在另外一实施例中,该批量打包装置还包括拷贝单元700,用于python工程在执行npm install之前,将所述node-modules拷贝到不同应用程序的文件夹中。在此需要说明的是,由于具体的拷贝方式以及过程在上述RN混合式APP的批量打包方法的步骤S40中已经详细阐述,故在此不再赘述。
另外,本发明实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何RN混合式APP的批量打包方法的部分或全部步骤。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上参照附图描述了根据本发明的实施例的用于实现服务链的方法的示例性流程图。应指出的是,以上描述中包括的大量细节仅是对本发明的示例性说明,而不是对本发明的限制。在本发明的其他实施例中,该方法可具有更多、更少或不同的步骤,且各步骤之间的顺序、包含、功能等关系可以与所描述和图示的不同。
Claims (10)
1.一种RN混合式APP的批量打包方法,其特征在于,包括:
获取待打包应用程序的源代码;
获取待替换的用户配置;
通过Python下载所述用户配置,在所述源代码中找到需要被替换的部分,进行替换;
在RN工程下执行安装node-modules,接着python工程在执行npminstall;
执行与应用平台相对应的打包工具将替换后的应用程序打包好;
将打包好的应用程序安装包上传到指定服务器位置,并将下载地址回写到执行地址。
2.根据权利要求1所述的批量打包方法,其特征在于:python工程在执行npminstall之前,将所述node-modules拷贝到不同应用程序的文件夹中。
3.根据权利要求1所述的批量打包方法,其特征在于:所述用户配置包括启动图、LOGO、微信APPID中的一种或多种。
4.根据权利要求1-3中任意一项所述的的批量打包方法,其特征在于:所述应用平台包括Android和IOS。
5.根据权利要求4所述的批量打包方法,其特征在于,执行与应用平台相对应的打包工具将替换后的应用程序打包好,进一步包括:
若应用平台为Android,则使用adb工具执行打包,生成Apk安装包;若应用平台为IOS,则使用xcode的命令工具执行打包,生成IPA安装包。
6.一种RN混合式APP的批量打包装置,其特征在于,包括:
第一获取单元,用于获取待打包应用程序的源代码;
第二获取单元,用于获取待替换的用户配置;
替换单元,用于通过Python下载所述用户配置,在所述源代码中找到需要被替换的部分,进行替换;
安装单元,用于在RN工程下执行安装node-modules,接着python工程在执行npminstall;打包单元,用于执行与应用平台相对应的打包工具将替换后的应用程序打包好;
上传单元,用于将打包好的应用程序安装包上传到指定服务器位置,并将下载地址回写到执行地址。
7.根据权利要求6所述的批量打包装置,其特征在于,还包括:拷贝单元,用于python工程在执行npminstall之前,将所述node-modules拷贝到不同应用程序的文件夹中。
8.根据权利要求6所述的批量打包装置,其特征在于:所述用户配置包括启动图、LOGO、微信APPID中的一种或多种。
9.根据权利要求6所述的批量打包装置,其特征在于,所述打包单元包括:Android打包模块,用于使用adb工具执行打包,生成Apk安装包;
IOS打包模块,用于使用xcode的命令工具执行打包,生成IPA安装包。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的一种RN混合式APP的批量打包方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110284534.1A CN112965744A (zh) | 2021-03-16 | 2021-03-16 | 一种rn混合式app的批量打包方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110284534.1A CN112965744A (zh) | 2021-03-16 | 2021-03-16 | 一种rn混合式app的批量打包方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112965744A true CN112965744A (zh) | 2021-06-15 |
Family
ID=76277841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110284534.1A Pending CN112965744A (zh) | 2021-03-16 | 2021-03-16 | 一种rn混合式app的批量打包方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112965744A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007030796A2 (en) * | 2005-09-09 | 2007-03-15 | Salesforce.Com, Inc. | Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment |
CN107678755A (zh) * | 2017-09-13 | 2018-02-09 | 北京京东尚科信息技术有限公司 | 安装包打包的方法、装置、电子设备和计算机可读介质 |
CN108874429A (zh) * | 2018-07-20 | 2018-11-23 | 珠海宏桥高科技有限公司 | 一种Android系统一体化自动打包方法 |
CN109101244A (zh) * | 2018-07-20 | 2018-12-28 | 珠海宏桥高科技有限公司 | 一种ios系统一体化自动打包方法 |
CN109117175A (zh) * | 2018-07-31 | 2019-01-01 | 成都华栖云科技有限公司 | 一种基于apk反编译快速封包桌面端打包方法及打包工具 |
CN109408076A (zh) * | 2018-10-22 | 2019-03-01 | 海南新软软件有限公司 | 一种app批量发版方法、装置及系统 |
-
2021
- 2021-03-16 CN CN202110284534.1A patent/CN112965744A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007030796A2 (en) * | 2005-09-09 | 2007-03-15 | Salesforce.Com, Inc. | Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment |
CN107678755A (zh) * | 2017-09-13 | 2018-02-09 | 北京京东尚科信息技术有限公司 | 安装包打包的方法、装置、电子设备和计算机可读介质 |
CN108874429A (zh) * | 2018-07-20 | 2018-11-23 | 珠海宏桥高科技有限公司 | 一种Android系统一体化自动打包方法 |
CN109101244A (zh) * | 2018-07-20 | 2018-12-28 | 珠海宏桥高科技有限公司 | 一种ios系统一体化自动打包方法 |
CN109117175A (zh) * | 2018-07-31 | 2019-01-01 | 成都华栖云科技有限公司 | 一种基于apk反编译快速封包桌面端打包方法及打包工具 |
CN109408076A (zh) * | 2018-10-22 | 2019-03-01 | 海南新软软件有限公司 | 一种app批量发版方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491695B (zh) | 一种集成安卓应用的增量更新方法 | |
CN110058873B (zh) | 应用页面更新方法、装置、设备和存储介质 | |
CN102289378B (zh) | 自动生成应用程序的方法 | |
CN111367510B (zh) | 一种安卓功能模块开发的方法及装置 | |
CN105446712B (zh) | 一种应用程序缺陷修补方法及装置 | |
CN107832059B (zh) | 一种基于Makefile的代码静态分析方法和装置 | |
CN110968357B (zh) | 一种maven项目的打包方法、装置、存储介质及处理器 | |
CN104793946A (zh) | 基于云计算平台的应用部署方法和系统 | |
CN101957766B (zh) | 一种字节码织入方法、装置及系统 | |
CN112286829B (zh) | 测试脚本生成方法及装置 | |
CN110597544A (zh) | 一种软件系统升级方法及装置 | |
CN103761107A (zh) | 软件包定制的装置及方法 | |
CN113064630A (zh) | 移动端app自动打包方法、系统、电子设备及存储介质 | |
CN107688456B (zh) | 文件生成方法、设备以及计算机可读存储介质 | |
CN115658069A (zh) | 一种发布平台的项目打包和在线编译方法 | |
CN107092472B (zh) | 一种动态发布方法及设备 | |
CN111367512B (zh) | 一种应用程序开发中创建Android库模块依赖关系的方法及装置 | |
CN112965744A (zh) | 一种rn混合式app的批量打包方法及装置 | |
CN106649081B (zh) | 一种调试运行在客户端应用内离线包的方法及装置 | |
CN116009959B (zh) | Flash项目的移植方法、装置、系统及存储介质 | |
CN111722875A (zh) | 一种申威平台快速移植编译开源程序的方法 | |
CN112799778A (zh) | 一种容器应用启动方法、设备及介质 | |
CN105335185A (zh) | 红帽源码包管理srpm包的处理方法及装置 | |
CN109144524B (zh) | 一种教育平台上学科游戏的版本发布方法及电子设备 | |
CN110554867B (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 |