CN116841635A - 参数配置方法、装置、设备及存储介质 - Google Patents
参数配置方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116841635A CN116841635A CN202310592977.6A CN202310592977A CN116841635A CN 116841635 A CN116841635 A CN 116841635A CN 202310592977 A CN202310592977 A CN 202310592977A CN 116841635 A CN116841635 A CN 116841635A
- Authority
- CN
- China
- Prior art keywords
- configuration
- application
- parameter
- file
- configuration file
- 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
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 238000013515 script Methods 0.000 claims description 101
- 238000013475 authorization Methods 0.000 claims description 78
- 230000004044 response Effects 0.000 claims description 48
- 230000001960 triggered effect Effects 0.000 claims description 21
- 230000002159 abnormal effect Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 230000010354 integration Effects 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 17
- 238000013519 translation Methods 0.000 description 12
- 238000011161 development Methods 0.000 description 10
- 230000015556 catabolic process Effects 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 6
- 238000009434 installation Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000007599 discharging Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种参数配置方法、装置、设备及存储介质,由于通过配置应用自动地获取SDK集成至业务应用所需的参数集,基于参数集对业务应用的配置文件进行更新,实现了自动化配置参数,相较于人工配置参数方式而言,降低了配置参数的复杂度和错误率,也降低了由于人工配置操作引起的漏配、错配的概率。此外,由于配置应用自动将第三方依赖库保存至业务应用的工程目录下,自动将第三方依赖库的标识添加至配置文件中的框架节点,实现了将第三方依赖库自动导入业务应用的工程项目中,从而降低了手动导入第三方依赖库引起的操作复杂度。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种参数配置方法、装置、设备及存储介质。
背景技术
开发者在开发业务应用时,经常需要在业务应用中集成软件开发工具包(software development kit,SDK)。目前,开发者需要手动地配置SDK所需配置的参数,并手动将SDK所依赖的第三方依赖库导入至业务应用的工程目录中,以便SDK能够正常运行。
然而,上述方式导致开发者需要手动配置大量参数,操作较为繁琐,配置效率低下。
发明内容
本申请提供了一种参数配置方法、装置、设备及存储介质,能够提升参数的配置效率。所述技术方案如下。
第一方面,提供了一种参数配置方法,由配置应用执行,所述方法包括:
获取SDK集成至业务应用所需的参数集以及所述SDK依赖的第三方依赖库;
基于所述参数集对所述业务应用的配置文件进行更新,并将所述第三方依赖库保存至所述业务应用的工程目录下,将所述第三方依赖库的标识添加至所述配置文件中的框架节点。
在一种可能的实现中,所述参数集包括目标参数的键值对,所述基于所述参数集对所述业务应用的配置文件进行更新,包括:
基于所述键值对中的键,在所述配置文件中确定所述目标参数;
基于所述键值对中的值,对所述配置文件中所述目标参数的值进行更新。
在一种可能的实现中,所述基于所述键值对中的键,在所述配置文件中确定目标参数,包括:
基于编译设置节点的标识,在所述配置文件中确定编译设置节点;
基于所述键值对中的键,在所述编译设置节点中确定所述目标参数;
所述基于所述键值对中的值,对所述配置文件中所述目标参数的值进行更新,包括:
基于所述键值对中的值,对所述编译设置节点中所述目标参数的值进行更新。
在一种可能的实现中,所述参数集包括目标参数的键值对,所述基于所述参数集对所述业务应用的配置文件进行更新,包括:
响应于基于所述键值对中的键在所述配置文件中未查找到匹配的参数,将所述键值对添加至所述配置文件。
在一种可能的实现中,所述方法还包括:
将脚本写入至所述业务应用的配置文件中的编译阶段节点,所述脚本包括指示上传所述业务应用运行期间产生的异常崩溃信息的指令。
在一种可能的实现中,所述将脚本写入至所述业务应用的配置文件中的编译阶段节点,包括:
基于所述脚本的标识,在所述配置文件中的编译阶段节点中确定所述脚本;基于所述脚本包括的指令,对所述编译阶段节点中保存的所述脚本的内容进行更新;或者,
响应于基于所述脚本的标识在所述编译阶段节点中未查找到所述脚本,将所述脚本的标识以及所述脚本包括的指令添加至所述编译阶段节点;或者,
将所述脚本的路径添加至所述配置文件中的编译阶段节点。
在一种可能的实现中,所述方法还包括:
基于所述业务应用的发行地区,对所述SDK对应的授权窗口文本进行更新。
在一种可能的实现中,所述基于所述业务应用的发行地区,对所述SDK对应的授权窗口文本进行更新,包括:
基于所述业务应用的发行地区,查找发行地区与授权窗口文本之间的对应关系,获得所述业务应用的发行地区对应的授权窗口文本,使用所述发行地区对应的授权窗口文本替换所述SDK对应的授权窗口文本;或者,
基于所述业务应用的发行地区,对所述业务应用的默认授权窗口文本进行翻译,使用翻译后的授权窗口文本替换所述SDK对应的授权窗口文本。
在一种可能的实现中,所述方法还包括:
对所述业务应用的配置文件进行复制,得到所述配置文件的副本;
所述基于所述参数集对所述业务应用的配置文件进行更新,包括:
基于所述参数集,对所述业务应用的配置文件的副本进行更新。
在一种可能的实现中,所述方法还包括:
响应于检测到所述参数集配置成功,使用更新后的配置文件替换所述业务应用的工程目录中的配置文件;或者,
响应于检测到所述参数集配置失败,输出错误报告信息。
在一种可能的实现中,所述将所述第三方依赖库的标识添加至所述配置文件中的框架节点之前,所述方法还包括:
为所述第三方依赖库生成对应的标识;
基于合法的库文件标识所需满足的格式,对生成的标识进行格式处理,得到所述第三方依赖库的标识。
在一种可能的实现中,所述方法还包括:
显示UI界面,所述UI界面包括第一控件、第二控件、第三控件以及第四控件;
响应于对所述第一控件触发的输入操作,获取通过所述第一控件输入的所述业务应用的工程目录的路径;基于所述业务应用的工程目录的路径,获取所述业务应用的配置文件;
响应于对所述第二控件触发的输入操作,获取通过所述第二控件输入的所述第三方依赖库的路径;基于所述第三方依赖库的路径,获取所述第三方依赖库;
响应于对所述第三控件触发的输入操作,获取通过所述第三控件输入的第一文件的路径;基于所述第一文件的路径,获取第一文件,所述第一文件用于保存所述参数集;
响应于对所述第四控件触发的输入操作,获取通过所述第四控件输入的所述发行地区的标识;基于所述发行地区的标识,确定所述业务应用的发行地区。
第二方面,提供了一种参数配置装置,设置配置应用,所述装置包括:
获取模块,用于获取SDK集成至业务应用所需的参数集以及所述SDK依赖的第三方依赖库;
配置模块,用于基于所述参数集对所述业务应用的配置文件进行更新,并将所述第三方依赖库保存至所述业务应用的工程目录下,将所述第三方依赖库的标识添加至所述配置文件中的框架节点。
在一种可能的实现中,所述参数集包括目标参数的键值对,所述配置模块,用于基于所述键值对中的键,在所述配置文件中确定所述目标参数;基于所述键值对中的值,对所述配置文件中所述目标参数的值进行更新。
在一种可能的实现中,所述配置模块,用于基于编译设置节点的标识,在所述配置文件中确定编译设置节点;基于所述键值对中的键,在所述编译设置节点中确定所述目标参数;基于所述键值对中的值,对所述编译设置节点中所述目标参数的值进行更新。
在一种可能的实现中,所述参数集包括目标参数的键值对,所述配置模块,用于响应于基于所述键值对中的键在所述配置文件中未查找到匹配的参数,将所述键值对添加至所述配置文件。
在一种可能的实现中,所述配置模块,还用于将脚本写入至所述业务应用的配置文件中的编译阶段节点,所述脚本包括指示上传所述业务应用运行期间产生的异常崩溃信息的指令。
在一种可能的实现中,所述配置模块,用于基于所述脚本的标识,在所述配置文件中的编译阶段节点中确定所述脚本;基于所述脚本包括的指令,对所述编译阶段节点中保存的所述脚本的内容进行更新;或者,
响应于基于所述脚本的标识在所述编译阶段节点中未查找到所述脚本,将所述脚本的标识以及所述脚本包括的指令添加至所述编译阶段节点;或者,
将所述脚本的路径添加至所述配置文件中的编译阶段节点。
在一种可能的实现中,所述配置模块,还用于基于与所述业务应用的发行地区对应的窗口文本,对所述业务应用的窗口文本进行更新。
在一种可能的实现中,所述获取模块,还用于基于所述业务应用的发行地区,查找发行地区与窗口文本之间的对应关系,获得所述业务应用的发行地区对应的窗口文本;或者,基于所述业务应用的发行地区,对所述业务应用的默认窗口文本进行翻译,得到所述业务应用的发行地区对应的窗口文本。
在一种可能的实现中,所述装置还包括:
复制模块,用于对所述业务应用的配置文件进行复制,得到所述配置文件的副本;
所述配置模块,用于基于所述参数的标识以及所述参数的值,对所述配置文件的副本进行更新。
在一种可能的实现中,所述配置模块,还用于响应于检测到所述参数集配置成功,使用更新后的配置文件替换所述业务应用的工程目录中的配置文件;或者,响应于检测到所述参数集配置失败,输出错误报告信息。
在一种可能的实现中,所述装置还包括:
生成模块,用于为所述第三方依赖库生成对应的标识;基于合法的库文件标识所需满足的格式,对生成的标识进行格式处理,得到所述第三方依赖库的标识。
在一种可能的实现中,所述装置还包括:
显示模块,用于显示UI界面,所述UI界面包括第一控件、第二控件、第三控件以及第四控件;
所述获取模块,还用于响应于对所述第一控件触发的输入操作,获取通过所述第一控件输入的所述业务应用的工程目录的路径;基于所述业务应用的工程目录的路径,获取所述业务应用的配置文件;响应于对所述第二控件触发的输入操作,获取通过所述第二控件输入的所述第三方依赖库的路径;基于所述第三方依赖库的路径,获取所述第三方依赖库;响应于对所述第三控件触发的输入操作,获取通过所述第三控件输入的所述第一文件的路径;基于所述第一文件的路径,获取所述第一文件;响应于对所述第四控件触发的输入操作,获取通过所述第四控件输入的所述发行地区的标识;基于所述发行地区的标识,确定所述业务应用的发行地区。
第三方面,提供了一种计算机设备,所述计算机设备包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由所述处理器加载并执行,以使所述计算机设备实现上述第一方面或第一方面任一种可选方式所述的方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可选方式所述的方法。
第五方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第一方面或第一方面任一种可选方式所述的方法。
第六方面,提供一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现如上述第一方面或第一方面任一种可选方式所述的方法。
由此可见,本申请具有如下有益效果:
由于通过配置应用自动地获取SDK集成至业务应用所需的参数集,基于参数集对业务应用的配置文件进行更新,实现了自动化配置参数,相较于人工配置参数方式而言,降低了配置参数的复杂度和错误率,也降低了由于人工配置操作引起的漏配、错配的概率。此外,由于配置应用自动将第三方依赖库保存至业务应用的工程目录下,自动将第三方依赖库的标识添加至配置文件中的框架节点,实现了将第三方依赖库自动导入业务应用的工程项目中,从而降低了手动导入第三方依赖库引起的操作复杂度。
附图说明
图1是本申请实施例提供的一种应用场景的示意图;
图2是本申请实施例提供的一种参数配置方法的流程图;
图3是本申请实施例提供的一种参数配置方法的流程图;
图4是本申请实施例提供的一种界面示意图;
图5是本申请实施例提供的一种参数配置装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对本申请实施例涉及的一些术语概念做解释说明。
业务应用:是指针对特定业务场景而开发的软件应用程序。例如,业务应用为游戏应用、多媒体应用、社交应用或者电商应用等。
SDK:是指用于建立软件所使用的开发工具的集合。SDK通常包含实现通用功能的,非独立运行的程序集合。例如,SDK包括库文件、API文件、配置文件、头文件等与软件开发相关的一系列文件。
第三方依赖库:是指开发业务应用中由第三方(如业务应用的开发者之外其他开发者或者厂商)提供的库文件。第三方依赖库包括可重用的软件代码。第三方依赖库通常提供一些特定的功能,并可以被业务应用所使用。第三方依赖库通常包括一些常见的功能库、工具库和框架库等,例如图形、网络、数据存储、界面等相关的库。
配置文件:是指用于保存业务应用在运行时所需参数的文件。例如,配置文件包括业务应用的元数据、配置选项、用于编译的参数、用于链接的参数、SDK所需的授权信息等。以iOS应用为例,iOS应用为基于iOS或macOS操作系统运行的应用程序,iOS应用的配置文件包括Xcode工程(project.pbxproj)文件、信息属性列表(info.plist)文件、授权(entitlements)文件、AppDelegate文件以及桥接头(bridging header)文件中至少一项。project.pbxproj文件用于保存SDK的静态库或动态库。info.plist文件用于保存SDK的权限或配置。entitlements文件用于保存SDK所需的授权信息。以Android应用为例,Android应用的配置文件包括Android Manifest.xml文件或者build.gradle文件中至少一项。以Windows应用为例,Windows应用的配置文件包括.vcxproj文件或者.sln文件中至少一项。
业务应用的工程目录(project directory)是指一个软件项目(如游戏工程)所使用的所有文件(源代码、资源、配置文件、第三方库等)所存放的目录。业务应用的工程目录相当于一个文件夹,包含了业务应用在开发、调试和部署所需的所有文件和目录。
第三方依赖库的标识:第三方依赖库用于标识对应的第三方依赖库。第三方依赖库的标识可以用来在编译、链接和运行时识别和区分不同的第三方依赖库,以便正确的第三方依赖库被加载和调用。在使用第三方依赖库时,程序需要根据第三方依赖库的标识来检查是否存在第三方库以及版本是否匹配。如果第三方依赖库的标识匹配,则可以安全地调用该库的函数和方法,否则可能会导致程序运行崩溃或逻辑错误。
框架节点:是指用于记录第三方依赖库的节点。例如,框架节点为framework节点。
下面对本申请实施例的应用场景举例说明。
本申请实施例可以应用在开发业务应用的过程中,在业务应用中集成SDK的场景。通过在业务应用中集成SDK,使得业务应用能够复用SDK中的代码和资源来实现通用的功能,而不需要开发者自己编写代码来实现通用功能,从而提高开发速度,缩短开发周期,降低开发成本。
在一个示例性应用场景中,在开发游戏应用的场景下,在游戏应用中集成第三方登录SDK,这样开发者在开发游戏应用时,无需从头编写第三方登录的代码,游戏应用通过调用第三方登录SDK实现第三方登录的功能,即用户在第三方平台上的账号登录游戏应用,减少用户登录的繁琐步骤。又如,在游戏应用中集成数据统计SDK,这样开发者在开发游戏应用时,无需从头编写数据统计的代码,游戏应用在运行的过程中,能通过数据统计SDK实现数据统计的功能,例如统计游戏应用的安装量、活跃度、付费、在线时长、创建角色行为等与游戏广告投放效果有关的参数。
以上描述的接入第三方登录SDK、数据统计SDK的场景仅是示例性地,本实施例可以应用在接入任意实现通用功能的SDK的场景下,如广告SDK、支付SDK、分享SDK、推送SDK、社交SDK、bug监控SDK、收藏SDK或者性能监控SDK等。例如,游戏应用通过集成支付SDK实现用户付费购买虚拟物品或游戏内特权,又如游戏可以通过集成社交SDK实现用户社交分享、好友邀请等功能,从而增加用户留存和活跃度。
在业务应用中集成SDK的场景下,通常需要手动配置大量第三方的参数,并需要配置很多第三方的参数以及手动导入第三方依赖库,多达20项的参数需要手动去配置,一个参数错了就会导致整个功能不能用。此外,每次业务应用在出包(出包是指将业务应用的程序代码打包成一个安装包或者一个可执行文件,并上传到应用商店或其它发布平台上供用户下载和安装)时,都需要再次手动去配置参数,或者保存上次的配置表,这样直接导致业务应用中集成SDK的效率较低,而且在改变参数值的时候容易漏配置参数甚至出错。而一旦参数配置出现错误,会导致业务应用的运行出现严重问题,例如对于游戏应用来说,配置出错可能导致游戏功能缺失、运行崩溃、充值不成功等一系列问题。
基于此,本申请的一些实施例中,提供了一种实现自动配置SDK所需配置参数的方法,通过由配置应用自动地获取SDK集成至业务应用所需的参数集,基于所述参数集对所述业务应用的配置文件进行更新,实现了自动化配置参数,从而降低了配置的复杂度和错误率,也降低了由于人工操作引起的漏配、错配等的概率,并且有助于在短时间内完成配置操作,大大提高了配置的效率。并且,由于第三方依赖库是SDK所依赖的必要组件,通过将第三方依赖库保存到业务应用的工程目录下,并在配置文件中添加标识,有助于应用程序在编译、打包和运行时正常地使用SDK,并能获得SDK提供的功能,降低缺少依赖库,导致SDK无法正常工作,造成业务应用崩溃或其它异常的概率,从而提高SDK集成的稳定性和可靠性,同时便于后续的维护和调试。
下面对本申请实施例的应用场景关联的硬件系统架构举例说明。
附图1为本申请实施例提供的一种系统架构示意图,附图1所示架构包括计算机设备120、服务器系统140以及第三方平台190。计算机设备120、服务器系统140以及第三方平台190通过通信网络160连接。
计算机设备120可以是终端(terminal),例如,计算机设备120是支持人机交互功能、拥有接入网络的能力、通常搭载有操作系统的设备。计算机设备120的类型包括但不限于手机、平板电脑、笔记本电脑、台式电脑、汽车、车载终端、可穿戴设备、掌上游戏主机等。计算机设备120也可以称为用户设备(user equipment,UE)、智能终端、移动终端用户装备(user device)或终端设备(terminal equipment)。
计算机设备120包括处理器1201、存储器1202、显示器1207、输入设备1205、网络接口1203以及内部连接1204。
处理器1201用于运行配置应用1201。可选地,处理器1201还用于运行业务应用1202。处理器1201例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器1201包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器1202用于保存SDK所需的参数集、第三方依赖库、脚本以及业务应用的配置文件。可选地,存储器1202保存配置应用1201的程序代码,处理器1201通过读取存储器1202中保存的配置应用1201的程序代码,加载并执行该程序代码,以实现下述图2实施例或图3实施例中的方法。或者,处理器1201通过内部存储的程序代码实现下述图2实施例或者图3实施例中的方法。存储器1202例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。可选地,存储器1202独立存在,并通过内部连接1204与处理器1201相连接。或者,可选地存储器1202和处理器1201集成在一起。
输入设备1205用于响应于用户101触发的输入操作,获取输入的SDK集成至业务应用所需的参数集、第三方依赖库、脚本、业务应用的配置文件以及业务应用的工程目录。输入设备1205包括但不限于键盘、触摸屏、麦克风、鼠标或传感设备等。
显示器1207用于显示配置应用1201的界面。显示器1207例如是屏幕。
网络接口1203使用任何收发器一类的装置,用于与服务器系统140、第三方平台190或通信网络160通信。网络接口1203例如包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络接口或其组合等。
处理器1201、存储器1202、网络接口1203、输入设备1205以及显示器1207通过内部连接1204连接。内部连接1204包括通路,在上述组件之间传送信息。可选地,内部连接1204是单板或总线。可选地,内部连接1204分为地址总线、数据总线、控制总线等。
第三方平台190用于提供SDK相关的第三方服务,例如,SDK为第三方登录SDK,第三方平台190为该SDK相关的社交媒体平台。又如,SDK为广告归因统计SDK,第三方平台190为该SDK相关的数据统计平台。可选地,第三方平台190用于提供SDK所需的参数集以及第三方依赖库,计算机设备120通过配置应用1201与第三方平台190交互,通过网络接口1203接收第三方平台190发送的SDK所需的参数集以及第三方依赖库。
服务器系统140用于运行业务应用关联的后台服务,服务器系统140允许终端通过网络访问服务。可选地,服务器系统140用于提供业务应用的配置文件以及脚本,计算机设备120通过业务应用1202与服务器系统140互,通过网络接口1203接收第三方平台190发送的业务应用的配置文件以及脚本。
下面对本申请实施例的方法流程举例说明。
附图2是本申请实施例提供的一种参数配置方法的流程图。
附图2所示方法由配置应用执行。配置应用的形态包括很多种情况。例如,配置应用是基于Mac OS操作系统工作的应用程序。又如,配置应用是基于iOS操作系统工作的应用程序。再如,配置应用是基于安卓操作系统工作的应用程序。再如,配置应用是基于Windows操作系统工作的应用程序。配置应用可以是全球信息网(world wide web,Web)应用程序。配置应用又如可以是应用客户端,再如配置应用可以是集成于第三方应用中的应用程序接口(API)。配置应用可以是独立的软件客户端,也可以是小程序。小程序是指依赖于父应用程序运行的子应用程序。
结合附图1来看,附图2所示方法例如是附图1中计算机设备120的处理器读取存储器1202中保存的配置应用1201的程序代码从而执行图2实施例中的方法。
附图2所示方法包括S220至S240。
S220,配置应用获取SDK集成至业务应用所需的参数集以及SDK依赖的第三方依赖库。
SDK集成至业务应用所需的参数集也可以简称为SDK所需的参数集,包括针对SDK配置的一个或多个参数的组合。通过获取SDK所需的参数集,将参数集配置到业务应用的配置文件中,有助于SDK能够正常运行,与业务应用进行交互,便于SDK为业务应用提供所需的服务。SDK所需的参数集可以包括很多种类型的参数,不同的参数可以在开发业务应用的过程中实现不同的功能,下面结合几种具体的参数,对参数集中可能包括的参数举例说明。例如,参数集包括以下第一参数以及第二参数中至少一项。
(1)第一参数
第一参数用于供业务应用与SDK对应的第三方平台通信。例如,第一参数包括应用标识(APP ID)、API Key(业务应用接口密钥)或者应用密钥(App Secret)中至少一项。通过获取第一参数,将第一参数配置到业务应用的配置文件中,有助于SDK关联的第三方平台正确地和业务应用进行通信,以实现业务应用和第三方平台的相互配合和协同工作。
应用标识用于标识业务应用。业务应用基于应用标识与第三方平台通信,第三方平台基于应用标识识别业务应用,进而向业务应用发送数据和接收数据,从而实现业务应用与第三方平台的交互。API Key为用于授权业务应用访问第三方平台的API的密钥。业务应用基于API Key调用第三方平台的API,以便第三方平台基于API Key验证业务应用的身份,在验证通过的情况下为业务应用提供服务,从而提升安全性。应用密钥例如是业务应用在第三方平台上调用API时需要的令牌。
针对应用标识、API Key和App Secret的获得方式,举例说明,开发者在第三方平台上注册开发者账号,基于开发者账号创建业务应用,填写业务应用的基本信息,业务应用的基本信息经过第三方平台审核通过后,开发者获得业务应用的应用标识、API Key和AppSecret。
(2)第二参数
第二参数包括SDK所依赖的与编译相关的参数,编译器基于第二参数进行编译,以便配置后业务应用能够正常运行。比如说,SDK中可能包含一些带有特定编译选项的库或框架,因此将SDK的库或框架添加到业务应用的项目中时,基于此,通过获取编译参数,将编译参数配置到业务应用的配置文件,有助于SDK本身包含的编译选项与业务应用的项目中的编译选项匹配,以便SDK的库或框架能够和业务应用的其他部分兼容。
例如,第二参数包括头文件路径(Header Search Paths),头文件路径的参数值例如是SDK所在目录的头文件路径,通过配置头文件路径,以便编译器基于头文件路径找到SDK的头文件,进而基于头文件进行编译,降低由于编译器找不到头文件导致编译失败的风险。
例如,第二参数包括库文件路径(Library Search Paths),库文件路径的参数值例如是SDK所在目录的库文件路径,通过配置库文件路径,以便编译器基于库文件路径能够找到SDK的库文件,进而基于库文件进行编译,降低由于编译器找不到库文件导致编译失败的风险。
例如,第二参数包括处理器架构(Architectures,ARCHS)。处理器架构的参数值例如是SDK支持的架构。通过获取SDK支持的处理器架构,以便基于此修改配置文件的编译架构,从而降低在编译阶段出现错误的概率。
例如,第二参数包括链接标识(Other Linker Flags),链接标识用于标识连接包含的类型或者链接至特定的代码库。例如,链接标识的值包括-ObjC或lc++。-ObjC用于标识编译链接包含Objective-C类别或类别类的框架。-lc++用于标识链接C++代码库。
在获取SDK所需的参数集的一种可能的实现方式中,配置应用获取第一文件。配置应用解析第一文件,得到SDK所需的参数集。第一文件用于保存SDK所需的参数集。
第一文件例如是文本文件。例如,第一文件是txt文件。又如,第一文件是doc文件。或者,第一文件例如是表格文件。再如,第一文件是json文件、XML文件或者YAML文件,本实施例对第一文件的格式不做限定。
在获取第一文件的一种可能实现方式中,配置应用获取第一文件的路径,配置应用基于第一文件的路径获取第一文件。
在获取第一文件的另一种可能实现方式中,配置应用获取第一文件的文件名,配置应用基于第一文件的文件名,在计算机设备的文件系统中搜索得到第一文件。
在获取第一文件的另一种可能实现方式中,配置应用获取第一文件的存储地址,存储地址例如逻辑地址或者物理地址,存储地址用于指示计算机设备的存储器中第一文件所在的存储位置。配置应用基于第一文件的存储地址,从计算机设备的存储器中读取第一文件。
在获取SDK所需的参数集的另一种可能的实现方式中,配置应用与SDK对应的第三方平台交互,从而获得参数集。例如,配置应用向第三方平台发送获取请求,获取请求指示获取下载SDK的描述文件。第三方平台响应于配置应用的获取请求,向配置应用发送SDK的描述文件。配置应用接收来自第三方平台的SDK的描述文件,配置应用基于与参数配置相关的关键字,从描述文件中查找得到参数集。SDK的描述文件例如SDK的官方文档或者SDK的示例项目。参数配置相关的关键字例如"SDK integration","configuration","settings"等词汇。通过这种方式,支持自动获取SDK集成至业务应用所需的参数集,从而进一步提高获取参数的效率。
参数集中的参数包括参数的标识和参数的值。参数的标识是指用于标识参数的数据。参数的标识例如是参数的名称、参数的ID或者为参数分配的编号。参数的值是指参数的具体取值(value)。参数的值例如具有字母、数字、符号或者其他数据形式。
可选地,参数集中的参数具有键值(key-value)对的格式。键值对也可以称为字典(Dictionary)结构、映射(Map)或关联数组(Associative Array)。键值对用于保存参数。例如,键值对中的键(key)为参数的标识。key可以是一个字符串、数字、或者为其他数据类型。键值对中的值(value)为参数的值。键值对中的键与值具有一一对应的关系。
示例性地,参数集中一个键值对为ARCHS=arm64。ARCHS为key,ARCHS为处理器架构参数的参数标识。arm64为value,相当于处理器架构参数的参数值,键值对ARCHS=arm64表示业务应用编译成的目标文件所需支持的处理器架构为arm64。
第三方依赖库可以是静态库也可以是动态库。例如,第三方依赖库是社交媒体应用(例如facebook)提供的代码库。通过将社交媒体应用提供的代码库导入至游戏工程,游戏应用通过代码库中封装的接口,可以与社交媒体应用进行交互,从而实现第三方登录、支付、分享或收藏等功能。又如,第三方依赖库是广告归因统计平台(Appsflyer)提供的代码库。通过将广告归因统计平台提供的代码库导入至游戏工程,游戏应用可以调用代码库中封装的接口与广告归因统计平台进行交互,采集游戏应用的安装量、活跃度、付费、在线时长、创建角色行为等与游戏广告投放效果有关的参数,并基于采集的参数进行游戏广告归因的统计(如追溯安装游戏行为的来源)。再如,第三方依赖库是应用性能监控平台(如Firebase)提供的代码库,通过在游戏工程中引入应用性能监控平台提供的代码库,游戏应用在运行的过程中,可以调用代码库中封装的接口,与应用性能监控平台进行交互,以便监控游戏应用的bug和性能。再如,第三方依赖库是Naver Game提供的依赖库,用于采集设备的基础数据,或者提供游戏开发所需的其他基础设施和服务。
在获取SDK依赖的第三方依赖库的一种可能的实现方式中,配置应用获取第三方依赖库的路径,配置应用基于第三方依赖库的路径获取第三方依赖库。
在获取第三方依赖库的另一种可能实现方式中,配置应用获取第三方依赖库的文件名,配置应用基于第三方依赖库的文件名,在计算机设备的文件系统中搜索得到第三方依赖库。
在获取第三方依赖库的另一种可能实现方式中,配置应用获取第三方依赖库的存储地址,存储地址例如逻辑地址或者物理地址,存储地址用于指示计算机设备的存储器中第三方依赖库所在的存储位置。配置应用基于第三方依赖库的存储地址,从计算机设备的存储器中读取第三方依赖库。
在获取第三方依赖库的再一种可能实现方式中,配置应用基于第三方依赖库的标识,在SDK的开发包中查找得到第三方依赖库。
S240,配置应用基于参数集对业务应用的配置文件进行更新,并将第三方依赖库保存至业务应用的工程目录下,将第三方依赖库的标识添加至配置文件中的框架节点。
更新后的配置文件包括参数集。更新配置文件的方式包括增加(例如向配置文件中增加参数集中的参数)、修改(例如基于参数集中参数的值替换配置文件中已有对应参数的值)以及删除(例如从配置文件中删除与运行SDK有冲突的参数)中至少一项。
本实施例提供的方法,在业务应用中需要集成SDK的场景下,由于通过配置应用自动地获取SDK集成至业务应用所需的参数集,基于参数集对业务应用的配置文件进行更新,实现了自动化配置参数,相较于人工配置参数方式而言,降低了配置参数的复杂度和错误率,也降低了由于人工配置操作引起的漏配、错配的概率。此外,由于配置应用自动将第三方依赖库保存至业务应用的工程目录下,自动将第三方依赖库的标识添加至配置文件中的框架节点,实现了将第三方依赖库自动导入业务应用的工程项目中,从而降低了手动导入第三方依赖库引起的操作复杂度。此外,由于配置应用参与了将业务应用和SDK打包的流程,从而简化了出包的流程,节约了出包时间,提高了出包效率。
在一种可能的实现中,配置应用获得的参数集中的参数具有键值对的格式,配置应用基于键值对从业务应用的配置文件中识别出需要更新的参数,进而对配置文件中的参数进行更新。例如,配置应用从参数集获得目标参数的键值对,配置应用基于键值对中的键,在配置文件中确定目标参数;配置应用基于键值对中的值,对配置文件中目标参数的值进行更新。
目标参数是指配置文件中待修改的参数。通过对目标参数的值进行修改,从而满足SDK运行、编译或链接等阶段正常工作的需求。在确定目标参数的过程中,键的作用相当于查找的索引或者说关键字。例如,配置应用基于目标参数的键在配置文件进行查找。在查找的过程中,配置应用对目标参数的键与配置文件中第一参数的键进行比较,从而确定目标参数的键与第一参数的键之间的匹配程度。配置应用响应于确定目标参数的键与配置文件中第一参数的键匹配,将配置文件中的第一参数确定为目标参数,则配置应用进一步使用键值对中的值替换配置文件中第一参数的值。反之,配置应用响应于确定键值对的键与配置文件中第一参数的键不匹配,则继续对键值对的键与配置文件中第二参数的键进行比较,直至在配置文件中查找到与参数集中的键匹配的目标参数为止。
由于采用键值对的方式识别和更新目标参数,达到的效果包括而不限于以下几个方面。
第一,有助于从配置文件中快速查找到目标参数,从而提高配置SDK的效率。
第二,使用key-value的方式几乎能够替换任何键值对,从而灵活适应不同的需要,因此灵活性高。
第三,可扩展性强。如果需要添加或删除待配置的参数,可以通过对第一文件添加或删除键值对来实现,而不需要改变源代码或重新构建应用程序。
第四,易于维护。使用key-value的方式可以方便地更改第一文件和配置文件中的参数值,而不需要重新编译程序或者在代码中手动修改。这样可以减少出现错误的机会,并且可以更快地更新配置。
第五,便于管理:使用key-value的方式使得第一文件具有可读性和可维护性,因为用户可以容易地找到参数和更改参数。
下面对配置应用如何从业务应用的配置文件中找到SDK所需的目标参数的实现方式举例说明。
在从业务应用的配置文件中找到SDK所需的目标参数的一种实现方式中,配置应用基于键采用严格匹配的方式,从配置文件确定目标参数。严格匹配是指完全按照SDK所需的目标参数的键进行精确匹配。例如,配置应用响应于确定SDK所需的目标参数的键与配置文件中第一参数的键相同,将配置文件中的第一参数确定为目标参数,则进一步将配置文件中第一参数的值替换为SDK所需的目标参数的值。例如,配置应用对目标参数的键与配置文件中第一参数的键逐个字符进行匹配,响应于确定目标参数的键与配置文件中第一参数的键中每个字符均相同,配置应用将配置文件中的第一参数确定为目标参数。
作为一个采用严格匹配的方式确定目标参数的具体示例,SDK所需的目标参数的键为ARCHS,目标参数的值为sms77。配置文件中包括第一参数的键为ARCHS,第一参数的值为arm64。配置应用以ARCHS为索引,在配置文件中查找。响应于确定ARCHS与配置文件中的第一参数的键ARCHS相同,配置应用使用目标参数的值sms77替换第一参数的值arm64。
由于采用严格匹配的方式识别和更新配置文件中的参数,使得配置文件中键与SDK所需的参数集中对应的键完全一致的参数才能被匹配到,因此有助于在配置文件中更准确地定位到目标参数,有助于提高参数配置的精确性。
在从业务应用的配置文件中找到SDK所需的目标参数的另一种实现方式中,配置应用可以采用模糊查询的方式,基于键从配置文件确定目标参数。模糊查询例如基于一些特殊符号、操作符构建正则表达式,以该正则表达式表示匹配条件的查询方式。模糊查询的方式允许查找结果与查找时基于的索引不完全相同,比如查找结果与查找时基于的索引满足正则表达式。例如,配置文件中包括第一参数,将第一参数确定为目标参数的情况例如是:配置应用判断第一参数的键与SDK所需的目标参数的键是否满足正则表达式,响应于确定第一参数的键与目标参数的键满足正则表达式,则将第一参数确定为目标参数,则进一步将配置文件中第一参数的值替换为第一文件中目标参数的值。
又如,配置应用响应于确定第一参数的键是目标参数的键的子字符串,换句话说,配置应用确定第一参数的键包括目标参数的键,这种情况也可以将第一参数确定为目标参数,配置应用可以进一步将配置文件中第一参数的值替换为SDK所需的目标参数的值。
作为一个采用模糊匹配的方式确定目标参数的具体示例,第一文件中SDK所需的参数集包括目标参数的键值对,键值对中的键为字符串CLANG_ANALYZER_NUMBER_CONVERSION,键值对中的值为字符串zero。业务应用的配置文件中包括第一参数。第一参数的键为字符串CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION,第一参数的值为字符串zero,这两个参数的键的区别在于,是否包括字符串“OBJECT”。配置应用以字符串CLANG_ANALYZER_NUMBER_CONVERSION为索引,在配置文件中查找匹配的键。配置应用响应于确定配置文件中的第一参数的键CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION包括目标参数的键CLANG_ANALYZER_NUMBER_CONVERSION,则进一步将配置文件中第一参数的值替换为第一文件中目标参数的值。
由于采用模糊查询的方式识别和更新配置文件中的目标参数,使得键不完全一致的参数也能被匹配到,因此在准备SDK所需的参数的时候,不必严格要求用户录入参数的完整、准确的键,比如用户可以仅是录入参数的键中的部分关键字,或者仅是录入参数的键中的词干,而不录入参数的键中一些冗余的信息。而对于配置应用而言,由于键中的部分关键字或者词干与完整的键之间满足模糊查询所基于的匹配条件(如正则表达式),因此配置应用根据关键词或者词干也能在配置文件中找到目标参数,从而提高参数配置成功率,也降低准备第一文件或者说SDK所需的参数集的复杂度,同时由于不必保存SDK所需的参数集中每个参数的完整的键,从而降低SDK所需的参数集的存储空间。
在从业务应用的配置文件中找到SDK所需的目标参数的另一种实现方式中,配置应用采用基于语义查询的方式,基于键从配置文件确定目标参数。例如,配置应用获得目标参数的键,对目标参数的键进行语义分析,得到目标参数的键的词义。配置应用响应于确定第一参数的键的词义与目标参数的键的词义匹配,则将第一参数确定为目标参数,配置应用可以进一步将配置文件中第一参数的值替换为SDK所需的目标参数的值。
由于采用语义查询的方式识别和更新配置文件中的目标参数,使得在准备SDK所需的参数的时候,不必严格要求用户记住SDK所需的参数的准确地键,比如用户可以仅是录入参数的键的同义词,而配置应用基于同义词采用语义匹配的方式,也能在配置文件中找到目标参数,从而提高参数配置成功率,也降低准备SDK所需的参数集的复杂度。
针对确定配置文件中参数的键以及参数的值的方式,在一种可能的实现中,配置应用基于配置文件的格式特征为:一个键值对中的键与值通过等号(=)分隔开,不同键值对之间通过分号(;)分隔开,配置应用从配置文件中确定位于两个分号之间的字符串,作为配置文件中一个待替换的参数的键值对。配置应用确定位于两个分号之间且位于等号之前的字符串,作为配置文件中一个参数的键,使用确定出的键与SDK所需的目标参数的键进行匹配。在匹配的情况下,配置应用确定位于两个分号之间且位于等号之后的字符串,作为配置文件中与该键对应的值,将确定出的值替换为SDK所需的目标参数的值。
例如,配置文件中包括如下内容:
ALWAYS_SEARCH_USER_PATHS=NO;
CLANG_ANALYZER_NONNULL=YES;
配置应用确定上述内容中两个分号之间的字符串,得到CLANG_ANALYZER_NONNULL=YES,从而解析出一个键值对。配置应用确定上述内容中位于两个分号之间且位于等号之前的字符串,得到CLANG_ANALYZER_NONNULL,从而解析出了该键值对的键。配置应用使用CLANG_ANALYZER_NONNULL与SDK所需的目标参数的键进行匹配,在匹配的情况下,使用SDK所需的目标参数的值替换YES。
配置应用在配置文件中查找待更新的目标参数时,查找的范围包括多种情况。在一种可能的实现中,配置应用对业务应用的配置文件中所有的键值对进行遍历,配置应用在配置文件的所有的键值对中查找与目标参数的键匹配的键值对,以便对查找到的键值对进行更新。
在另一种可能的实现中,配置应用在编译设置节点包含的键值对中查找与目标参数的键匹配的键值对,以便对查找到的键值对进行更新。例如,配置应用基于编译设置节点(build settings)的标识,在配置文件中确定编译设置节点;基于键值对中的键,在编译设置节点中确定目标参数;基于键值对中的值,对编译设置节点中目标参数的值进行更新。
build settings节点的作用相当于编译设置选项,build settings节点用于保存对应用进行编译所基于的参数,例如:编译目标版本、编译器选项、预处理器宏定义、编译器环境变量、框架搜索路径、库搜索路径等。build settings节点的参数通常会传递给编译器,因此通过修改build settings节点的内容,开发者可以控制编译器的行为,进而提升性能或安全性。
build settings节点是一个字典类型的节点,build settings节点采用键值对的方式保存参数。例如build settings节点中有一个键值对"IPHONEOS_DEPLOYMENT_TARGET=9.0",表示目标版本为iOS 9.0。
通过在build settings这种特定的节点内查找目标参数,有助于缩小在配置文件中查找目标参数的范围,从而提高配置效率。此外,由于Build Settings是一个比较重要的节点,其包含了很多关键的编译参数和设置,选择更改Build Settings中的参数,有助于提高修改的准确性和可行性。
在更新build settings节点的一个具体示例中,配置应用基于SDK的头文件的路径,更新build settings节点中Header Search Paths,使得更新后的Header SearchPaths包括SDK的头文件的路径。配置应用基于SDK的库文件的路径,更新build settings节点中Library Search Paths,使得更新后的Library Search Paths包括SDK的库文件的路径,通过更新这些路径以使Xcode找到SDK的头文件和库。
在更新build settings节点的另一个具体示例中,配置应用响应于确定SDK所需的参数包括参数linker flags,配置应用向Other Linker Flags中添加参数linkerflags。
以上侧重描述基于键值对在配置文件中查找匹配参数的情况,而在另一些场景下,配置文件中可能并不存在与键值对匹配的参数,这种情况下,配置应用可以响应于基于键值对中的键在配置文件中未查找到匹配的参数,将键值对添加至配置文件。例如,一个使用C++编写的SDK可能要求在"Other C++Flags"里指定某些编译选项,如"-std=c++11"以表示此SDK需使用C++11标准。配置应用可以从第一文件获得键值对"-std=c++11",配置应用响应于基于键-std在配置文件中未查找到匹配的参数,将"-std=c++11"添加配置文件中。
针对第三方依赖库的标识的获得方式,在一种可能的实现中,配置应用为第三方依赖库生成对应的标识;配置应用基于合法的库文件标识所需满足的格式,对生成的标识进行格式处理,得到第三方依赖库的标识。在另一种可能实现方式中,配置应用生成一个随机字符串,将该随机字符串作为第三方依赖库的标识。
通过上述方式,使得生成的第三方依赖库的标识具有一定的随机性,有助于降低两个第三方依赖库的标识相同导致添加到framework中后会发生冲突,可能会导致运行时崩溃或者其他错误。
在生成第三方依赖库的标识的另一种可能实现方式中,配置应用基于第三方依赖库的文件名、第三方依赖库的文件扩展名以及第三方依赖库路径,生成第三方依赖库的标识,第三方依赖库的标识包括第三方依赖库的文件名、第三方依赖库的文件扩展名以及第三方依赖库路径。通过这种方式,不仅有助于标识的唯一性,也降低不同库文件的标识发生冲突的概率,也便于清楚地知道哪个标识代表哪个依赖库,从而降低维护的复杂度,在调用时可以更加清晰明了,并且使得第三方依赖库的标识命名符合一定的规范。
格式处理的方式例如是基于合法库标识所需满足的格式,对生成的标识进行处理,使得处理后的标识为合法库标识。例如,向生成的随机数添加前缀、后缀、按照大小写规定进行转换等等。
在一种可能的实现中,配置应用还获取脚本,将脚本写入至业务应用的配置文件中的编译阶段(build phases)节点。通过获取脚本,将脚本集成到业务应用中,每次运行业务应用时都会自动运行脚本,从而简化操作。
脚本例如是一段程序代码,脚本可以包含一系列指令、函数、变量和条件语句等,脚本可以用于实现一些自定义的操作、功能或者处理特定的任务。
在一个示例性场景下,脚本用于上传业务应用在运行期间产生的异常崩溃信息。脚本包含获取异常崩溃信息的指令以及将异常崩溃信息发送至业务服务器的指令。通过获取该脚本,将该脚本写入至build phases节点中后,每次构建业务应用都会自动执行脚本中的指令,那么如果业务应用运行时发生了异常崩溃,通过执行脚本自动上传异常崩溃信息到业务服务器,这样开发人员可以更加方便地获取到异常崩溃信息,并且可以快速响应修复问题,提高业务应用的质量。
在另一个示例性场景下,脚本用于对业务应用的工程文件进行打包。又如,脚本用于生成不同语言版本的业务应用的文本文件或翻译文件。又如,脚本用于实现版本控制,例如每次代码提交时自动添加版本号,或是在构建业务应用时将当前版本号添加到业务应用中。又如,脚本用于在业务应用构建阶段对业务应用的性能进行自动化测试。又如,脚本用于在业务应用构建阶段对业务应用的代码进行分析并自动报告错误。又如,脚本用于检查业务应用的代码中是否包括敏感数据。
可选地,脚本保存在第一文件中。配置应用从第一文件中获得脚本。
在写入脚本的一种可能的实现中,配置应用基于编译阶段节点的标识(如节点名称)确定编译阶段节点;配置应用基于脚本的标识,在配置文件中的编译阶段节点中确定脚本;配置应用基于脚本包括的指令,对编译阶段节点中保存的脚本的内容进行更新。例如,配置应用对脚本的标识与编译阶段节点中已有的脚本的标识进行比较,配置应用响应于确定脚本的标识与编译阶段节点中已有的脚本的标识匹配,将脚本包括的指令添加至该编译阶段节点中已有的脚本中。又如,配置应用响应于基于脚本的标识在编译阶段节点中未查找到脚本,将脚本的标识以及脚本包括的指令添加至编译阶段节点;或者,配置应用将脚本的路径添加至配置文件中的编译阶段节点。
在一种可能的实现中,配置应用还基于业务应用的发行地区,对SDK对应的授权窗口文本进行更新。
授权弹窗文本是指应用程序在需要获取用户授权时,通过弹出窗口的方式向用户展示的文本。授权弹窗文本的目的是向用户解释应用程序请求授权的原因和范围,让用户了解自己是否应该同意授权。通常,授权弹窗文本包含以下内容:应用程序的名称或标识符。请求的授权范围,包括访问用户信息、使用设备硬件等。请求授权的原因,包括应用程序或网站的功能需要这些权限等。用户可以选择的操作,如同意、拒绝等。
在将SDK集成至业务应用后,通常在运行业务应用的过程中,需要用户对SDK对应的第三方平台授权,以获取相关权限。授权弹窗文本通常是由SDK提供的,显示在业务应用中以通知用户的授权需求。当SDK接入游戏后,如果需要进行授权,则SDK会自动弹出授权窗口。以基于社交媒体应用的第三方依赖库实现第三方登录的场景为例,将社交媒体应用的SDK的第三方依赖库集成至业务应用时,在运行业务应用的过程中,业务应用响应于第三方登录指令,会触发社交媒体应用的SDK提供的API,进而触发授权窗口的弹出,显示在业务应用中,以通知用户授权基于在社交媒体应用中注册的账号登录至业务应用。本实施例中,考虑到不同地区的用户的语言、文化、习惯等方面都存在不同的需求和偏好,由于基于发行地区替换窗口文本,使得窗口文本与发行地区的用户的语言和语法的特点更加匹配,帮助用户更好地理解窗口文本,避免不同地区的用户使用同一种业务应用时,窗口文本的语言和语法与该地区不匹配从而给用户造成理解上的困难。
在更新授权弹窗文本的一种可能实现方式中,配置应用基于与授权相关的关键字,在第三方依赖库中确定SDK对应的原始授权弹窗文本,将SDK对应的原始授权弹窗文本替换为发行地区的语言类型匹配的授权窗口文本。例如,配置应用基于“requestAuthorization”、“alert”等关键字,在第三方依赖库中查找与授权弹框相关的代码段,并在代码段中找到相应的原始授权弹窗文本,对该原始授权弹窗文本进行更新。
在更新授权弹窗文本的一种可能实现方式中,配置应用基于与SDK对应的第三方平台的标识,在信息属性列表(例如info.plist)文件中查找与授权弹框相关的设置项,将查找到的设置项的值替换为发行地区的语言类型匹配的授权窗口文本。例如,基于“Facebook应用标识”、“FacebookDisplayName”等键值对,在信息属性列表(例如info.plist)文件中查找与Facebook授权弹框相关的设置项,将Facebook授权弹框相关的设置项的值替换为用于提示对第三方登录授权、与发行地区的语言类型匹配的授权窗口文本。
在获取发行地区的语言类型匹配的授权窗口文本的一种可能的实现中,配置应用基于业务应用的发行地区,查找发行地区与授权窗口文本之间的对应关系,获得业务应用的发行地区对应的授权窗口文本。
发行地区与授权窗口文本之间的对应关系包括至少一组发行地区的标识以及发行地区的语言类型匹配的授权窗口文本。举例来说,发行地区与授权窗口文本之间的对应关系如下表1所示。配置应用响应于确定业务应用的发行地区为欧洲,查找表1,获得英语授权弹窗文本。配置应用响应于确定业务应用的发行地区为日本,查找表1,获得日语授权弹窗文本。
表1
发行地区的标识 | 授权窗口文本 |
欧洲 | 英语授权弹窗文本 |
日本 | 日语授权弹窗文本 |
韩国 | 韩语授权弹窗文本 |
在获取发行地区的语言类型匹配的授权窗口文本的另一种可能的实现中,配置应用基于业务应用的发行地区,查找发行地区与语言类型之间的对应关系,得到发行地区对应的语言类型;配置应用基于语言类型与授权窗口文本之间的对应关系,获得语言类型对应的授权窗口文本。
由于授权弹框的文本通常情况下是固定的,因此可以预先设定每种发行地区的语言对应的授权弹窗的文本,通过查找对应关系的方式即可获得与发行地区匹配的授权弹框的文本,而无需通过网络请求翻译授权弹框的文本,因此获得发行地区匹配的授权弹框的文本的速度更快,效率更高。
在获取发行地区的语言类型匹配的授权窗口文本的另一种可能的实现中,基于业务应用的发行地区,对业务应用的默认授权窗口文本进行翻译,使用翻译后的授权窗口文本替换SDK对应的授权窗口文本。通过这种方式,节省各种语言的授权弹窗的文本在Mac工具中占用的存储空间,有助于Mac工具更轻量化。例如,配置应用调用与语言翻译相关的API,生成翻译请求,配置应用向语言翻译相关的API对应的服务器发送翻译请求,翻译请求包括发行地区的标识以及业务应用的默认授权窗口文本,翻译请求指示将默认授权窗口文本翻译为发行地区的标识对应的语言类型的文本。服务器响应于翻译请求,向配置应用发送翻译响应,翻译响应包括发行地区的语言类型匹配的授权窗口文本。
可选地,本实施例中更新操作针对的对象是配置文件的副本。例如,配置应用在更新配置文件之前,对业务应用的配置文件自动进行复制,得到配置文件的副本;配置应用基于参数集,对业务应用的配置文件的副本进行更新。通过备份配置文件,从而降低在对配置文件进行修改时无意中丢失或破坏重要数据的风险。此外,如果修改过程中出现问题,可以基于原始的配置文件及时恢复,从而提高安全性。
在一种可能的实现中,配置应用响应于检测到参数集配置成功,使用更新后的配置文件替换业务应用的工程目录中的配置文件。通过这种方式,,使得修改后的内容能够被业务应用所读取和引用。
在一种可能的实现中,配置应用响应于检测到参数集配置失败,配置应用输出错误报告信息。错误报告信息包括参数集中没有成功配置到业务应用的配置文件中的参数的标识、错误类型以及修复提示信息中至少一项。例如,配置应用在界面中显示错误报告信息。基于错误报告提示信息提示用户参数配置失败,便于用户结合错误报告提示信息对应解决存在的问题。
本实施例对基于参数集更新配置文件、将第三方依赖库保存至业务应用的工程目录下、将第三方依赖库的标识添加至配置文件中的框架节点这三个步骤执行的时间先后顺序不做限定。例如,可以先基于参数集更新配置文件,再将第三方依赖库保存至业务应用的工程目录下,最后将第三方依赖库的标识添加至配置文件中的框架节点;又如,可以先将第三方依赖库保存至业务应用的工程目录下,再将第三方依赖库的标识添加至配置文件中的框架节点,最后基于参数集更新配置文件;再如,基于参数集更新配置文件、将第三方依赖库保存至业务应用的工程目录下、将第三方依赖库的标识添加至配置文件中的框架节点这三个步骤可以并行执行。
下面结合一个具体示例,对图2实施例举例说明。
附图3是本申请实施例提供的一种参数配置方法的流程图。附图3所示方法包括S310至S380。
附图3实施例中的游戏应用是附图2实施例中业务应用的具体示例。附图3实施例中游戏工程目录路径是图2实施例中业务应用的工程目录的具体示例。附图3实施例中Mac工具是图2实施例中配置应用的具体示例。附图3实施例中project.pbxproj文件以及info.plist文件是图2实施例中配置文件的具体示例。附图3实施例中的txt文件是图2实施例中第一文件的具体示例,txt文件用于保存图2实施例中参数集。
附图3所示方法由Mac工具执行。Mac工具例如是利用Python和Object-C语言开发的。Mac工具是基于Mac OS操作系统工作的应用程序,Mac工具通常是设计用来完成专门的任务,本实施例中,Mac工具用于将SDK所需的参数集配置至基于iOS操作系统的业务应用中。
附图3实施例的应用场景为开发者在开发iOS游戏应用的过程中,在iOS游戏应用中集成SDK。附图3实施例中,通过Mac工具代替开发者自动配置游戏应用中集成iOS游戏应用所需配置的参数,从而降低手动配置参数带来的操作复杂度,也降低了手动配置参数带来的漏配、错配的概率,
S310,Mac工具获取iOS游戏应用接入SDK所需的参数。
在一种可能的实现中,开发者准备游戏接入SDK所需的参数,然后将每个参数按照键值对的格式录入到txt文件中,将该txt文件命名为xx游戏参数.txt。xx表示具体的游戏名称,xx游戏参数.txt是上述方法实施例中第一文件的具体示例。
在按照键值对的格式录入参数的一种可能实现方式中,以录入第一参数和第二参数的过程为例,将第一参数的名称作为第一参数的键,将第一参数的键与第一参数的值以第一字符分隔开,得到第一参数的键值对。将第二参数的名称作为键,将第二参数的键与第二参数的值以第一字符分隔开,得到第二参数的键值对;将第一参数的键值对与第二参数的键值对以第二字符分隔开。以此类推,录入每个参数。第一字符例如是等号,又如是冒号。第二字符例如是换行符,又如是分号。
S320,Mac工具响应于对UI界面中第一控件的输入操作,获取通过第一控件输入的游戏工程目录路径。Mac工具访问游戏工程目录路径,获得游戏工程目录路径下保存的游戏工程的project.pbxproj文件。
在一种可能的实现中,Mac工具对project.pbxproj文件进行复制,得到project.pbxproj文件的副本。Mac工具后续针对project.pbxproj文件的副本进行修改,并在参数配置过程中保持project.pbxproj文件的原始文件内容不变。
在一种可能的实现中,Mac工具后续针对project.pbxproj文件进行修改,并在参数配置过程中保持project.pbxproj文件的副本的内容不变。
由于在修改之前对project.pbxproj文件做好备份,可以基于未修改的project.pbxproj文件恢复配置前的游戏工程,降低project.pbxproj文件由于参数配置导致文件损坏、丢失导致整个游戏工程无法编译或者丢失配置等问题。
S330:Mac工具访问游戏工程目录路径,获得游戏工程目录路径下保存的游戏工程的info.plist文件。Mac工具遍历info.plist文件,将xx游戏参数.txt中添加的键值对写入到info.plist文件中。
S340:Mac工具从project.pbxproj文件中获得build settings节点,将xx游戏参数.txt中添加的键值对写入build settings节点,替换build settings节点原有的默认值。
在一种可能的实现中,Mac工具基于xx游戏参数.txt中键值对的键与buildsettings节点中参数的键进行比较,将build settings节点中与xx游戏参数.txt中键值对的键匹配的参数确定为需要修改的参数;Mac工具使用xx游戏参数.txt中键值对的值,替换build settings节点中需要修改的参数的取值。例如,build settings节点包括第一参数,xx游戏参数.txt包括第一键值对,如果第一参数的键与第一键值对的键相同,则使用第一键值对的值替换第一参数的取值。
作为一个具体示例,project.pbxproj文件中buildsettings节点如下所示,使用xx游戏参数.txt中键值对的值,替换build settings节点中{}中的内容。
buildsettings={
ALWAYS_SEARCH_USER_PATHS=NO;\\表示构建时不搜索用户指定的头文件路径。
ARCHS=arm64;\\表示项目需要编译成64位的ARM架构目标文件。
CLANG_ANALYZER_NONNULL=YES;\\表示在代码分析工具中启用非空检查。
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION=YES_AGGR ESSIVE;\\表示在代码分析工具中启用转换错误检查。
CLANG_CXX_LANGUAGE_STANDARD="gnu++14";\\表示要使用gnu++14标准的C++语言编译器,该标准实现了C++14的一部分特性。
例如,xx游戏参数.txt中一个键值对的键为ARCHS,值为sms77,则以ARCHS为索引,在project.pbxproj文件中buildsettings节点中查找与ARCHS匹配的参数。确定名称为ARCHS的参数的原用默认取值(arm64),然后用键值对的值sms77代替原用默认值arm64,最终buildsettings节点中名称为ARCHS的参数的取值为arm64;以此类推,将xx游戏参数.txt中全部的键值对替换至project.pbxproj文件中buildsettings节点。
由于将xx游戏参数.txt的键值对中写入到project.pbxproj文件中buildsettings节点,支持自动化地配置开发者自定义的编译参数,一定程度上满足开发者控制游戏工程的代码的编译行为的需求。
S350:Mac工具从project.pbxproj文件中查找到build phases节点。Mac工具从xx游戏参数.txt中获取脚本,将脚本写入到build phases节点。
build phases节点用于配置项目构建的各个阶段及其执行顺序。build phases节点下的Run Script子节点可以用于添加自定义的脚本,这些脚本可以在构建时执行,可以用于自动化处理一些构建工作,例如代码签名、资源拷贝或者代码优化等。通过添加自定义脚本,可以实现针对SDK的定制构建流程。
在一种可能的实现中,Mac工具以Run Scirpt为键,在xx游戏参数.txt中查找对应的值,得到脚本的内容。Mac工具基于Run Scirpt,从project.pbxproj文件中确定RunScript子节点,将xx游戏参数.txt中得到的脚本内容写入Run Script子节点。
在一种可能的实现中,脚本用于将游戏运行期间产生的异常崩溃信息上传至服务器或者其他渠道。Mac工具通过将脚本写入到build phases节点中,每次构建游戏都会自动执行脚本,如果游戏运行时发生了异常崩溃,脚本会自动上传异常崩溃信息到服务器或者其他渠道,以便于开发人员以及测试人员更好地理解和解决游戏存在的问题。异常崩溃信息可以包括游戏运行的设备信息、错误类型、堆栈追踪信息等等,通过异常崩溃信息可以帮助开发人员以及测试人员更快地调试和修复问题,从而提高游戏的质量和稳定性。
S360:Mac工具在project.pbxproj文件中确定framework节点。Mac工具响应于对UI界面中第二输入控件的操作,获得输入的第三方依赖库路径。Mac工具访问第三方依赖库路径下保存的第三方依赖库,对第三方依赖库进行复制,得到第三方依赖库的副本。Mac工具将第三方依赖库的副本写入到游戏工程目录下,并将第三方依赖库的标识添加至framework节点中。
framework节点用于记录游戏工程所引入的第三方依赖库。通过将第三方依赖库的标识添加到framework节点中,使得游戏工程就成功引入了第三方依赖库。在运行游戏工程时,可以基于第三方依赖库的唯一标识调用第三方依赖库,从而实现第三方依赖库提供的功能,例如第三方登录、广告归隐统计等。
S370:Mac工具响应于对UI界面中第四输入控件的输入操作,获取通过第四输入控件输入的发行地区标识。Mac工具基于发行地区标识获得目标语言的授权弹窗的文本。Mac工具将游戏中显示的授权弹窗的文本替换为该目标语言的授权弹窗的文本。
发行地区标识用于标识游戏的发行地区。例如,发行地区标识为发行地区的名称、为发行地区分配的编号、发行地区的位置坐标等。
目标语言是指发行地区对应的语言。例如,在游戏的发行地区为日本时,目标语言是日语,在游戏的发行地区为韩国时,目标语言是韩语。
由于基于发行地区替换授权窗口文本,使得游戏与发行地区的用户的语言和语法的特点更加匹配,帮助用户更好地理解授权窗口文本,避免不同地区的用户使用同一款游戏时,使用授权窗口文本的语言和语法与该地区不匹配从而给用户造成理解上的困难。
在一种可能的实现中,Mac工具中保存有发行地区标识与授权弹窗的文本之间的对应关系。Mac工具基于发行地区标识查找对应关系,获得目标语言的授权弹窗的文本。
在另一种可能的实现中,Mac工具保存有发行地区标识与目标语言的标识之间的对应关系。Mac工具基于发行地区标识查找对应关系,获得目标语言的标识。Mac工具生成翻译请求,Mac工具向服务器发送翻译请求,翻译请求包括目标语言的标识以及源语言的授权弹窗的文本。
S380:Mac工具检测配置是否成功。
根据检测结果的不同,MAC执行的步骤有所区别。例如,响应于检测到配置成功,Mac工具使用修改后的project.pbxproj文件,覆盖游戏工程中原有的project.pbxproj文件;例如,Mac工具使用修改后的project.pbxproj文件,覆盖游戏工程中原有的project.pbxproj文件替换原来的游戏工程中的project.pbxproj文件,使得修改后的内容能够被游戏工程所读取和引用。
又如,响应于检测到配置失败,Mac工具取消覆盖游戏工程中原有的project.pbxproj文件,从而降低配置报错导致原有游戏工程无法运行的概率。而且,通过Mac工具的报错信息,有助于对应解决存在的问题,修改之后再次运行Mac工具重复上列步骤,即可以完成后续配置。
本实施例对S330、S340、S350、S360以及S370的执行顺序不做限定,例如先执行S330,再执行S340,再执行S350,再执行S360,再执行S370,又如先执行S360,之后执行S350,之后执行S340,之后执行S330。
本实施例提供的方法,由于通过Mac工具自动配置游戏对接SDK时所需配置的参数,从而减少人工介入,节约人力成本,降低人工配置参数导致的漏配参数以及错配参数的概率,简化游戏的可执行文件的产生流程,节约创建游戏的可执行文件的时间,提升工作效率。
此外,通过xx游戏参数.txt这一份文档记录所有参数,因此便于管理游戏对接SDK时使用的参数。
图4是本申请实施例提供的一种配置应用的界面示意图,图4所示界面400包括第一控件401、第二控件402、第三控件403以及第四控件404;
第一控件401用于输入业务应用的工程目录的路径。举例来说,第一控件401可以是下拉框(select box)或者文字输入框等。配置应用可以响应于对第一控件401触发的输入操作,获取通过第一控件401输入的业务应用的工程目录的路径;访问业务应用的工程目录的路径,得到业务应用的配置文件。
示例性的,第一控件401可以用于输入游戏工程目录路径。游戏工程是指游戏程序在开发过程中使用的一组文件。例如,一个游戏工程包含游戏程序在运行时所需的资源、代码、脚本、配置、接口以及第三方依赖库等。游戏工程目录是指游戏工程中的文件所在的目录。例如,游戏工程目录是包含游戏工程中所有文件的文件夹。游戏工程目录路径用于指示游戏工程目录的存储位置。例如图4所示,配置应用可以响应于对第一控件401的输入的游戏工程目录路径/Users/username/Documents/MyGameProject/,访问游戏工程目录路径/Users/username/Documents/MyGameProject/,得到该路径下名称为MyGameProject的游戏工程文件内保存的配置文件。
第二控件402可以用于输入第三方依赖库的路径。配置应用可以响应于对第二控件402触发的输入操作,获取通过第二控件402输入的第三方依赖库的路径;配置应用基于第三方依赖库的路径,获取第三方依赖库;例如图4所示,配置应用可以响应于对第二控件402的输入的第三方依赖库路径/Users/username/Documents/MyGameProject/,访问第三方依赖库路径/Users/username/Documents/MyGameProject/,得到该路径下保存的第三方依赖库。
第三控件403用于输入SDK所需的参数集的路径。以SDK所需的参数集保存在第一文件中为例,配置应用可以响应于对第三控件403触发的输入操作,获取通过第三控件403输入的第一文件的路径;配置应用可以基于第一文件的路径,获取第一文件,从第一文件中获得SDK所需的参数集。
第四控件404用于输入发行地区的标识。配置应用响应于对第四控件404触发的输入操作,获取通过第四控件404输入的发行地区的标识;基于发行地区的标识,确定业务应用的发行地区。例如,如图4所示,第四控件404例如是一个下拉框,该下拉框包括多个选项,每个选项包括一个发行地区的标识,如欧洲、日本和韩国,配置应用响应于鼠标指针414对选项欧洲的点击操作,获得发行地区的标识为欧洲。
图5为本申请实施例提供的一种参数配置装置的结构示意图,图5示出的装置500设于配置应用,装置500包括:
获取模块501,用于获取SDK集成至业务应用所需的参数集以及SDK依赖的第三方依赖库;
配置模块502,用于基于参数集对业务应用的配置文件进行更新,并将第三方依赖库保存至业务应用的工程目录下,将第三方依赖库的标识添加至配置文件中的框架节点。
在一种可能的实现中,参数集包括目标参数的键值对,配置模块502,用于基于键值对中的键,在配置文件中确定目标参数;基于键值对中的值,对配置文件中目标参数的值进行更新。
在一种可能的实现中,配置模块502,用于基于编译设置节点的标识,在配置文件中确定编译设置节点;基于键值对中的键,在编译设置节点中确定目标参数;基于键值对中的值,对编译设置节点中目标参数的值进行更新。
在一种可能的实现中,参数集包括目标参数的键值对,配置模块502,用于响应于基于键值对中的键在配置文件中未查找到匹配的参数,将键值对添加至配置文件。
在一种可能的实现中,配置模块502,还用于将脚本写入至业务应用的配置文件中的编译阶段节点,脚本包括指示上传业务应用运行期间产生的异常崩溃信息的指令。
在一种可能的实现中,配置模块502,用于基于脚本的标识,在配置文件中的编译阶段节点中确定脚本;基于脚本包括的指令,对编译阶段节点中保存的脚本的内容进行更新;或者,
响应于基于脚本的标识在编译阶段节点中未查找到脚本,将脚本的标识以及脚本包括的指令添加至编译阶段节点;或者,
将脚本的路径添加至配置文件中的编译阶段节点。
在一种可能的实现中,配置模块502,还用于基于与业务应用的发行地区对应的窗口文本,对业务应用的窗口文本进行更新。
在一种可能的实现中,获取模块501,还用于基于业务应用的发行地区,查找发行地区与窗口文本之间的对应关系,获得业务应用的发行地区对应的窗口文本;或者,基于业务应用的发行地区,对业务应用的默认窗口文本进行翻译,得到业务应用的发行地区对应的窗口文本。
在一种可能的实现中,装置还包括:
复制模块,用于对业务应用的配置文件进行复制,得到配置文件的副本;
配置模块502,用于基于参数的标识以及参数的值,对配置文件的副本进行更新。
在一种可能的实现中,配置模块502,还用于响应于检测到参数集配置成功,使用更新后的配置文件替换业务应用的工程目录中的配置文件;或者,响应于检测到参数集配置失败,输出错误报告信息。
在一种可能的实现中,装置还包括:
生成模块,用于为第三方依赖库生成对应的标识;基于合法的库文件标识所需满足的格式,对生成的标识进行格式处理,得到第三方依赖库的标识。
在一种可能的实现中,装置还包括:
显示模块,用于显示UI界面,UI界面包括第一控件、第二控件、第三控件以及第四控件;
获取模块501,还用于响应于对第一控件触发的输入操作,获取通过第一控件输入的业务应用的工程目录的路径;基于业务应用的工程目录的路径,获取业务应用的配置文件;响应于对第二控件触发的输入操作,获取通过第二控件输入的第三方依赖库的路径;基于第三方依赖库的路径,获取第三方依赖库;响应于对第三控件触发的输入操作,获取通过第三控件输入的第一文件的路径;基于第一文件的路径,获取第一文件;响应于对第四控件触发的输入操作,获取通过第四控件输入的发行地区的标识;基于发行地区的标识,确定业务应用的发行地区。
在一些实施例中,还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令在计算机上运行时,使得计算机执行实现图2实施例或图3实施例提供的方法。
在一些实施例中,还提供了一种计算机程序产品,计算机程序产品包括一个或多个计算机程序指令,当计算机程序指令被计算机加载并运行时,使得计算机执行上述图2实施例或图3实施例提供的方法。
本申请实施例所涉及的信息、数据以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的参数、窗口文本、脚本都是在用户充分授权的情况下获取的。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (15)
1.一种参数配置方法,其特征在于,由配置应用执行,所述方法包括:
获取SDK集成至业务应用所需的参数集以及第三方依赖库;
基于所述参数集对所述业务应用的配置文件进行更新,并将所述第三方依赖库保存至所述业务应用的工程目录下,将所述第三方依赖库的标识添加至所述配置文件中的框架节点。
2.根据权利要求1所述的方法,其特征在于,所述参数集包括目标参数的键值对,所述基于所述参数集对所述业务应用的配置文件进行更新,包括:
基于所述键值对中的键,在所述配置文件中确定所述目标参数;
基于所述键值对中的值,对所述配置文件中所述目标参数的值进行更新。
3.根据权利要求2所述的方法,其特征在于,所述基于所述键值对中的键,在所述配置文件中确定目标参数,包括:
基于编译设置节点的标识,在所述配置文件中确定编译设置节点;
基于所述键值对中的键,在所述编译设置节点中确定所述目标参数;
所述基于所述键值对中的值,对所述配置文件中所述目标参数的值进行更新,包括:
基于所述键值对中的值,对所述编译设置节点中所述目标参数的值进行更新。
4.根据权利要求1所述的方法,其特征在于,所述参数集包括目标参数的键值对,所述基于所述参数集对所述业务应用的配置文件进行更新,包括:
响应于基于所述键值对中的键在所述配置文件中未查找到匹配的参数,将所述键值对添加至所述配置文件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将脚本写入至所述业务应用的配置文件中的编译阶段节点,所述脚本包括指示上传所述业务应用运行期间产生的异常崩溃信息的指令。
6.根据权利要求5所述的方法,其特征在于,所述将脚本写入至所述业务应用的配置文件中的编译阶段节点,包括:
基于所述脚本的标识,在所述配置文件中的编译阶段节点中确定所述脚本;基于所述脚本包括的指令,对所述编译阶段节点中保存的所述脚本的内容进行更新;或者,
响应于基于所述脚本的标识在所述编译阶段节点中未查找到所述脚本,将所述脚本的标识以及所述脚本包括的指令添加至所述编译阶段节点;或者,
将所述脚本的路径添加至所述配置文件中的编译阶段节点。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述业务应用的发行地区,对所述SDK对应的授权窗口文本进行更新。
8.根据权利要求7所述的方法,其特征在于,所述基于所述业务应用的发行地区,对所述SDK对应的授权窗口文本进行更新,包括:
基于所述业务应用的发行地区,查找发行地区与授权窗口文本之间的对应关系,获得所述业务应用的发行地区对应的授权窗口文本,使用所述发行地区对应的授权窗口文本替换所述SDK对应的授权窗口文本;或者,
基于所述业务应用的发行地区,对所述业务应用的默认授权窗口文本进行翻译,使用翻译后的授权窗口文本替换所述SDK对应的授权窗口文本。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述业务应用的配置文件进行复制,得到所述配置文件的副本;
所述基于所述参数集对所述业务应用的配置文件进行更新,包括:
基于所述参数集,对所述业务应用的配置文件的副本进行更新。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于检测到所述参数集配置成功,使用更新后的配置文件替换所述业务应用的工程目录中的配置文件;或者,
响应于检测到所述参数集配置失败,输出错误报告信息。
11.根据权利要求1所述的方法,其特征在于,所述将所述第三方依赖库的标识添加至所述配置文件中的框架节点之前,所述方法还包括:
为所述第三方依赖库生成对应的标识;
基于合法的库文件标识所需满足的格式,对生成的标识进行格式处理,得到所述第三方依赖库的标识。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
显示UI界面,所述UI界面包括第一控件、第二控件、第三控件以及第四控件;
响应于对所述第一控件触发的输入操作,获取通过所述第一控件输入的所述业务应用的工程目录的路径;基于所述业务应用的工程目录的路径,获取所述业务应用的配置文件;
响应于对所述第二控件触发的输入操作,获取通过所述第二控件输入的所述第三方依赖库的路径;基于所述第三方依赖库的路径,获取所述第三方依赖库;
响应于对所述第三控件触发的输入操作,获取通过所述第三控件输入的第一文件的路径;基于所述第一文件的路径,获取第一文件,所述第一文件用于保存所述参数集;
响应于对所述第四控件触发的输入操作,获取通过所述第四控件输入的所述发行地区的标识;基于所述发行地区的标识,确定所述业务应用的发行地区。
13.一种参数配置装置,其特征在于,所述装置设于配置应用,包括:
获取模块,用于获取SDK集成至业务应用所需的参数集以及所述SDK依赖的第三方依赖库;
配置模块,用于基于所述参数集对所述业务应用的配置文件进行更新,并将所述第三方依赖库保存至所述业务应用的工程目录下,将所述第三方依赖库的标识添加至所述配置文件中的框架节点。
14.一种计算机设备,其特征在于,所述计算机设备包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由所述处理器加载并执行,以使所述计算机设备实现权利要求1-12中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令在计算机上运行时,使得计算机执行如权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310592977.6A CN116841635A (zh) | 2023-05-24 | 2023-05-24 | 参数配置方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310592977.6A CN116841635A (zh) | 2023-05-24 | 2023-05-24 | 参数配置方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116841635A true CN116841635A (zh) | 2023-10-03 |
Family
ID=88158935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310592977.6A Pending CN116841635A (zh) | 2023-05-24 | 2023-05-24 | 参数配置方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116841635A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118394429A (zh) * | 2024-06-28 | 2024-07-26 | 浪潮电子信息产业股份有限公司 | 一种项目配置管理方法、设备、产品及介质 |
-
2023
- 2023-05-24 CN CN202310592977.6A patent/CN116841635A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118394429A (zh) * | 2024-06-28 | 2024-07-26 | 浪潮电子信息产业股份有限公司 | 一种项目配置管理方法、设备、产品及介质 |
CN118394429B (zh) * | 2024-06-28 | 2024-09-20 | 浪潮电子信息产业股份有限公司 | 一种项目配置管理方法、设备、产品及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ocariza et al. | An empirical study of client-side JavaScript bugs | |
CN111382070B (zh) | 兼容性测试方法、装置、存储介质和计算机设备 | |
CN112394942B (zh) | 基于云计算的分布式软件开发编译方法及软件开发平台 | |
US10353807B2 (en) | Application development management | |
US9201757B2 (en) | Offline type checking in programming languages | |
CN110109681B (zh) | 不同平台间代码的转换方法及系统 | |
CN107346284B (zh) | 一种应用程序的检测方法及检测装置 | |
CN104572463A (zh) | 测试接口信息的方法及装置 | |
US9311077B2 (en) | Identification of code changes using language syntax and changeset data | |
US10823782B2 (en) | Ensuring completeness of interface signal checking in functional verification | |
CN111626028A (zh) | 基于函数解析的报表生成方法、装置、设备及计算机介质 | |
CN117112060A (zh) | 组件库构建方法、装置、电子设备及存储介质 | |
CN112241370B (zh) | 一种api接口类的校验方法、系统及装置 | |
CN116841635A (zh) | 参数配置方法、装置、设备及存储介质 | |
CN111240987B (zh) | 移植程序检测方法、装置、电子设备及计算机可读存储介质 | |
CN116414774A (zh) | 文件迁移方法、装置、设备及存储介质 | |
CN109284222B (zh) | 软件单元、数据处理系统中的项目测试方法、装置及设备 | |
CN113094252B (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN117667884A (zh) | 数据迁移方法、装置、设备及存储介质 | |
Szalay et al. | Towards better symbol resolution for C/C++ programs: A cluster-based solution | |
CN114817047A (zh) | 编译器测试方法、用例生成方法及装置、指令存储结构 | |
CN115344268A (zh) | 一种多平台嵌入式开发环境编译方法及装置 | |
CN114327431A (zh) | 编译方法、装置、设备及存储介质 | |
WO2023277802A2 (en) | Device and method for identifying errors in a software application | |
CN114356783A (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 |