Application version release methods, devices, equipment, and storage media

By receiving terminal requests and using APIs to build and distribute application source packages, the problem of cumbersome interactions in the application version release process is solved, realizing an automated version release process and reducing waste of human resources and risks.

CN110362337BActive Publication Date: 2025-10-31TENCENT TECH (BEIJING) CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN201910630386.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-07-12
Publication Date
2025-10-31
Estimated Expiration
2040-07-30

AI Technical Summary

Technical Problem

The existing application version release process is cumbersome, requiring manual building, downloading and uploading of source packages, which leads to a waste of human resources and increased risks.

Method used

By receiving source package build requests and version release requests from terminals, the API is used to build the application's source package and automatically distribute it to the corresponding release channels, simplifying the version release process and avoiding the risks of manual operation and source package transmission.

Benefits of technology

It simplifies the application version release process, reduces waste of human resources, minimizes the risk of source package transmission, and improves release efficiency and security through automated building of channel packages.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN110362337B_ABST
    Figure CN110362337B_ABST
Patent Text Reader

Abstract

This application discloses a method, apparatus, device, and storage medium for releasing application versions, relating to the field of application development. The method includes: receiving a source package build request sent by a terminal; calling the API of a source package build program according to the source package build request, and using the source package build program to build the application's program code into a source package; receiving a version release request sent by the terminal; building the source package into channel packages corresponding to release channel numbers according to the version release request; and sending a distribution request to a channel package distribution server, the distribution request requesting the channel package distribution server to distribute the channel packages to the release channels corresponding to the release channel numbers. In the process of releasing and updating an APP, this method simplifies the application version release process, eliminates the risk of damage during source package transmission, reduces the waste of human resources, and solves the problem of cumbersome interaction in APP release and update.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the Internet field, and in particular to a method, apparatus, device, and storage medium for publishing versions of an application. Background Technology

[0002] Application markets release and update application packages (APPs), and the APPs on the terminal are downloaded and installed from the application market.

[0003] The release and updates of an app on app stores are handled by the client developers manually building the app source package on the Wireless Research and Development Management (RDM) platform. After the app source package is built on the RDM platform, the developers download it from the RDM platform's page. When releasing an app version, the app source package must first be uploaded to the version release platform.

[0004] The process of releasing and updating the aforementioned app involves manually building the app source package, downloading the app source package, uploading the app source package, and finally releasing the app version. The entire process requires a lot of human resources and is cumbersome. Summary of the Invention

[0005] This application provides a method, apparatus, device, and storage medium for releasing application versions, which can solve the problem of cumbersome interaction during the release and update of APPs. The technical solution is as follows:

[0006] According to one aspect of this application, a method for releasing a version of an application is provided, the method comprising:

[0007] The receiving terminal sends a source package build request, which includes the application's release information, including the release channel number.

[0008] The application programming interface (API) of the source package builder is invoked according to the source package build request, and the application program code is built into the application source package by the source package builder.

[0009] Receive version release requests sent by the terminal;

[0010] Based on the version release request, the source packages are built into channel packages corresponding to the release channel number;

[0011] Send a distribution request to the channel package distribution server. The distribution request includes the channel package and is used to request the channel package distribution server to distribute the channel package to the publishing channel corresponding to the publishing channel number.

[0012] According to another aspect of this application, an application version release apparatus is provided, the apparatus comprising:

[0013] The receiving module is used to receive the source package build request sent by the terminal. The source package build request includes the application's release information, which includes the release channel number.

[0014] The first build module is used to call the application programming interface (API) of the source package builder according to the source package build request, and build the application's program code into the application's source package through the source package builder;

[0015] The sending module is used to receive version release requests sent by the terminal;

[0016] The second building module is used to build the source package into a channel package corresponding to the release channel number according to the version release request;

[0017] The sending module is used to send a distribution request to the channel package distribution server. The distribution request includes the channel package and is used to request the channel package distribution server to distribute the channel package to the publishing channel corresponding to the publishing channel number.

[0018] According to another aspect of this application, a server is provided, the server comprising:

[0019] Memory;

[0020] A processor connected to memory;

[0021] The processor is configured to load and execute executable instructions to implement the application version release method as described in the first aspect and its optional embodiments above.

[0022] According to another aspect of this application, a computer-readable storage medium is provided, wherein at least one instruction, at least one program, code set, or instruction set is stored therein, wherein the at least one instruction, at least one program, code set, or instruction set is loaded and executed by a processor to implement the application version release method as described in the first aspect and its optional embodiments above.

[0023] The beneficial effects of the technical solutions provided in this application include at least the following:

[0024] The system receives source package build requests from terminals, which include application release information, including release channel numbers. Based on these requests, it calls the API of the source package build program to build the application's source code into a source package. It also receives version release requests from terminals and builds the source packages into channel packages corresponding to the release channel numbers. Finally, it sends distribution requests to the channel package distribution server, including the channel packages, requesting the server to distribute the channel packages to the release channels corresponding to the release channel numbers.

[0025] The aforementioned application version release method realizes the release and update of the APP by receiving source package build requests and channel package distribution requests on the terminal. In the process of APP release and update, there is no need to manually build the application source package or download and upload the source package, which simplifies the application version release process, eliminates the risk of damage during source package transmission, reduces the waste of human resources, and solves the problem of cumbersome interaction in APP release and update. Attached Figure Description

[0026] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0027] Figure 1 This is a schematic diagram of a computer system provided in an exemplary embodiment of this application;

[0028] Figure 2 This is a flowchart of an application version release method provided in an exemplary embodiment of this application;

[0029] Figure 3 This is a schematic diagram of the interface of the storage directory of a file management platform provided in an exemplary embodiment of this application;

[0030] Figure 4 This is a flowchart of an application version release method provided in another exemplary embodiment of this application;

[0031] Figure 5 This is a flowchart of a method for managing distribution channel numbers provided in an exemplary embodiment of this application;

[0032] Figure 6 This is a flowchart of a method for managing distribution channel numbers provided in another exemplary embodiment of this application;

[0033] Figure 7 This is a schematic diagram of a channel management interface provided in an exemplary embodiment of this application;

[0034] Figure 8 This is a schematic diagram of a channel management interface provided in another exemplary embodiment of this application;

[0035] Figure 9 This is a schematic diagram of a channel management interface provided in another exemplary embodiment of this application;

[0036] Figure 10 This is a schematic diagram of a channel management interface provided in another exemplary embodiment of this application;

[0037] Figure 11 This is a schematic diagram of a channel management interface provided in another exemplary embodiment of this application;

[0038] Figure 12 This is a schematic diagram of a channel management interface provided in another exemplary embodiment of this application;

[0039] Figure 13 This is a schematic diagram of a management interface provided in an exemplary embodiment of this application;

[0040] Figure 14 This is a schematic diagram of a version management interface provided in an exemplary embodiment of this application;

[0041] Figure 15 This is a schematic diagram of a version management interface provided in another exemplary embodiment of this application;

[0042] Figure 16 This is a schematic diagram of a release management interface provided in an exemplary embodiment of this application;

[0043] Figure 17 This is a schematic diagram of a management interface provided in an exemplary embodiment of this application;

[0044] Figure 18 This is a schematic diagram of a release management interface provided in another exemplary embodiment of this application;

[0045] Figure 19 This is a schematic diagram of a release management interface provided in another exemplary embodiment of this application;

[0046] Figure 20 This is a schematic diagram of a release management interface provided in another exemplary embodiment of this application;

[0047] Figure 21 This is a schematic diagram of a release management interface provided in another exemplary embodiment of this application;

[0048] Figure 22This is a flowchart illustrating the interaction between a terminal and a server provided in an exemplary embodiment of this application.

[0049] Figure 23 This is a flowchart of an application publishing and update notification method provided in an exemplary embodiment of this application;

[0050] Figure 24 This is a flowchart of an application version release method provided in another exemplary embodiment of this application;

[0051] Figure 25 This is a flowchart of an application version release method provided in another exemplary embodiment of this application;

[0052] Figure 26 This is a flowchart of an application version release method provided in another exemplary embodiment of this application;

[0053] Figure 27 This is a block diagram of an application version publishing apparatus provided in an exemplary embodiment of this application;

[0054] Figure 28 This is a schematic diagram of the structure of an electronic device provided in an exemplary embodiment of this application;

[0055] Figure 29 This is a schematic diagram of the structure of a server provided in an exemplary embodiment of this application. Detailed Implementation

[0056] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.

[0057] A brief introduction to several terms used in this application:

[0058] Wireless Research and Development Management (RDM) platform: Supports application development, including a continuous integration platform, and is used for building source packages of the applications in this application.

[0059] Application (APP): refers to a computer program that is developed and runs in an operating system to perform one or more specific tasks.

[0060] Version release: This refers to the process of releasing an app to users through various channels after it has been developed or updated, allowing users to download and install it.

[0061] Please refer to Figure 1The diagram illustrates a structural block diagram of a computer system 100 provided in an exemplary embodiment of this application. The computer system 100 includes: a terminal 120, a server cluster 140, and a server cluster 160.

[0062] Terminal 120 can be a tablet computer, a laptop computer, a desktop computer, etc. A first application is installed on terminal 120; the first application supports the operation of a version management system. Optionally, the first application includes a version management program or a browser, wherein the browser supports the operation of a web-based version management system. In this application, the version management system is used for application version management, application release management, and application release channel management, etc. Optionally, the application may include the first application.

[0063] Optionally, the version control system has an account login function, allowing users to register and log in to their own accounts within the version control system.

[0064] Optionally, the first application and the application can have the same vendor or different vendors.

[0065] Terminal 120 is interconnected with server cluster 140 via wired and wireless networks. Server cluster 140 can be any of multiple servers, virtual cloud storage, or cloud computing centers. Server cluster 140 is used to support the storage of application release channel numbers, the storage of application version release information, and the construction of application channel packages, etc.

[0066] Optionally, server cluster 140 can also send source package build status information, channel package release status information, etc., to terminal 120. Optionally, server cluster 140 can be a server provided by an application vendor or a third-party server not provided by an application vendor.

[0067] Server cluster 140 and server cluster 160 are connected via a wired or wireless network. Optionally, server cluster 160 includes a source package build server 162 and a channel package distribution server 164. Server cluster 140 is connected to source package build server 162 and channel package distribution server 164 via wired or wireless networks, respectively.

[0068] The source package build server 162 is used to build the application's program code into the application's source package; the channel package distribution server 164 is used to distribute the channel package to the corresponding distribution channel.

[0069] This embodiment illustrates the example of server cluster 140 including two channel package building servers 142, and server cluster 160 including one source package building server 162 and one channel package distribution server 164. However, there may be more or fewer than two channel package building servers 142, and there may be more than one source package building server 162 and one channel package distribution server 164. For example, server cluster 140 may be implemented by multiple virtual machines on one server, or by dozens of servers. This embodiment does not limit this.

[0070] To illustrate, terminal 120 has a browser installed that supports the version control system. Terminal 120 sends the source package build request triggered by the version control system to channel package build server 142. Channel package build server 142 then calls the application programming interface (API) of the source package build program to build the application's source package. For example, the source package build program could be an RDM platform, and source package build server 162 supports the operation of the aforementioned RDM platform to build the application's source package.

[0071] After the source package build server 162 completes the construction of the application's source package, the channel package build server 142 retrieves the completed application source package. The channel package build server 142 receives a version release request triggered on the terminal, builds a channel package for the application's source package according to the version release request, and sends the completed channel package to the channel package distribution server 164, which then distributes it to the corresponding release channel.

[0072] Please refer to Figure 2 This application illustrates an exemplary embodiment of a method for releasing a version of an application, which is applied to... Figure 1 Taking the computer system shown as an example, the method includes:

[0073] Step 201: The terminal sends a source package build request to the server.

[0074] The aforementioned source package build request includes the application's release information, which includes the release channel number.

[0075] The publishing channel number mentioned above corresponds to any of the following publishing channels:

[0076] Gray-scale channels; Temporarily effective channels; Regularly effective channels;

[0077] Among them, gray release refers to a transitional release method, in which a version of the application is released to specific users, so that the released version of the application can be accessed through the channels of these specific users, which is called gray channel; temporary effective channel is the newly added official release channel; regular effective channel is the stored official release channel; official release channel is the channel that allows the released version of the application to be accessed by all users.

[0078] Optionally, the release information may also include the application's task identifier, the program code version identifier, and the source package build code version number. The application's task identifier is a unique identifier for the application's source package build task; the program code version identifier is a unique identifier for a version of the program code; and the source package build code version number is the version identifier of the source package code used to build the application.

[0079] Step 202: The server receives the source package build request sent by the terminal.

[0080] Step 203: The server calls the API of the source package builder based on the source package build request, and uses the source package builder to build the application's program code into the application's source package.

[0081] The server calls the API of the source package build program to start the source package build task. The source package build server builds the application's program code into the application's source package; the above source package does not include the channel number.

[0082] Alternatively, building the source package may include the following illustrative steps:

[0083] 1) The server calls the API of the source package builder based on the source package build request, and the source package builder performs asynchronous build on the source package.

[0084] The application's task identifier includes the storage location of the application's program code on the server. The source package build server retrieves the corresponding program code from the aforementioned storage location and builds the program code into a source package.

[0085] The construction process of the application's source package is asynchronous; therefore, the server determines the construction status of the source package through step 2).

[0086] 2) The server executes a build status monitoring script to poll and detect the build status of the source packages.

[0087] Build status monitoring scripts are scripts used on the server to monitor the build progress when asynchronously building source packages.

[0088] The server establishes a source package build task to asynchronously build the source package of an application. The server polls and checks the build status of the source package. When the build status of all source package build units is completed, the server determines that the build status of the application's source package in the source package build server is completed.

[0089] 3) When the build status of the source package is "build complete", the server obtains the application's source package from the source package build server.

[0090] This server belongs to a server cluster. When the source package build status is "build complete", the server obtains the application source package from the source package build server and stores the application source package in each server in the server cluster.

[0091] Before the server pulls the built application source package from the source package build server, it needs to verify the application source package. Optionally, the server performs parameter verification on the application source package. When the verification result shows that the parameters are accurate, the server retrieves the application source package from the source package build server. The illustrative steps are as follows:

[0092] a. The server retrieves keywords from the source package name and matches these keywords with the application's task identifier, the program code's version identifier, and the version number of the source package's build code.

[0093] b. When the keyword matches the application's task identifier, the program code version identifier, and the version number of the source package build code, the server executes a step to retrieve the application's source package from the source package build server.

[0094] First, the server determines whether the first field in the keyword matches the application's task identifier; it determines whether the second field in the keyword matches the program code's version identifier; and it determines whether the third field in the keyword matches the version number of the source package's build code.

[0095] The first field is the field in the keyword that corresponds to the application's task identifier; the second field is the field in the keyword that corresponds to the program code version identifier; and the third field is the field in the keyword that corresponds to the version number of the source package's build code.

[0096] Secondly, when the first field matches the application's task identifier, the second field matches the program code's version identifier, and the third field matches the version number of the source package build code, the server executes a step to obtain the application's source package from the source package build server.

[0097] For example, the source package name corresponds to the field name `build_apk_name`, the application task identifier corresponds to the field name `rdm_job_id`, the program code version identifier corresponds to the field name `version_code`, and the source package build code version number corresponds to the field name `svn_no`. The first, second, and third fields are retrieved from `build_apk_name` and matched against `rdm_job_id`, `version_code`, and `svn_no`, respectively. When the first field matches `rdm_job_id`, the second field matches `version_code`, and the third field matches `svn_no`, the server executes the step of retrieving the application's source package from the source package build server.

[0098] Here, rdm_job_id is used to associate the source package build task on the RDM platform, version_code is the version number of the application's program code, and svn_no is the version number of the source package build code provided in Subversion (a free and open-source version control system).

[0099] Step 204: The terminal sends a version release request to the server.

[0100] Step 205: The server builds the source packages into channel packages corresponding to the release channel number according to the version release request.

[0101] The illustrative steps for the server to build the source package into a channel package are as follows:

[0102] 1) The server creates a channel package build task based on the version release request and adds the channel package build task to the task queue.

[0103] 2) The server executes the channel package building task in the task queue, writes the release channel number into the source package, and generates the corresponding channel package.

[0104] Optionally, the server executes the channel package build tasks in the task queue in a first-in-first-out order; for example, a first build task is created and placed in the task queue, and then a second build task is created and placed in the task queue. When the server executes the channel package build task, the server executes the first build task first, and then the server executes the second build task.

[0105] Optionally, the server executes channel package building tasks in the task queue, simultaneously building the channel packages corresponding to the published channel numbers to generate the corresponding channel packages; for example, the channel package building server can build channel packages corresponding to 300 channel numbers.

[0106] Alternatively, the illustrative steps for building the channel package on the server are as follows:

[0107] a. Use a signature algorithm to write the i-th release channel number into the source package of the application, and generate the i-th channel package corresponding to the i-th release channel number, where i is a positive integer.

[0108] Optionally, the above signature algorithm can be the Android V2 signature algorithm.

[0109] Step 206: The server sends a distribution request to the channel package distribution server.

[0110] The distribution request includes the distribution channel number and the corresponding channel package. The distribution request is used to request the channel package distribution server to distribute the channel package to the distribution channel corresponding to the distribution channel number.

[0111] Step 207: The channel package distribution server distributes the channel package to the publishing channel corresponding to the aforementioned publishing channel number according to the distribution request.

[0112] The channel distribution server distributes the channel packages to the corresponding distribution channels. For illustration purposes, the channel distribution server runs a static package manager (SPM) platform. The SPM platform stores and manages the channel packages and also distributes them to the corresponding distribution channels.

[0113] Optionally, the channel distribution server stores channel packages for different versions of the application in different file paths. For illustration, the file paths for storing the application's channel packages are managed by the SPM platform, such as... Figure 3 Different versions of the channel package are stored in folders labeled with version numbers. The user interface of the SPM platform in the figure shows the channel package in the folder corresponding to version number "7.21.3".

[0114] In summary, the application version release method provided in this embodiment involves the server receiving a source package build request sent by a terminal. The source package build request includes the application's release information, which includes a release channel number. The server then calls the API of the source package build program according to the source package build request, and uses the source package build program to build the application's program code into a source package. Next, the server receives a version release request sent by the terminal. Based on the version release request, the server builds the source package into channel packages corresponding to the release channel number. Finally, the server sends a distribution request to the channel package distribution server, which includes the channel package and requests the channel package distribution server to distribute the channel package to the release channel corresponding to the release channel number.

[0115] The aforementioned application version release method realizes the release and update of the APP by receiving source package build requests and channel package distribution requests on the terminal. In the process of APP release and update, there is no need to manually build the application source package or download and upload the source package, which simplifies the application version release process, eliminates the risk of damage during source package transmission, reduces the waste of human resources, and solves the problem of cumbersome interaction in APP release and update.

[0116] The application's version release method also automatically builds the channel package corresponding to the release channel number through the server, eliminating the need to manually build each channel package for each release channel number and reducing the waste of human resources.

[0117] The application's version release method also employs the Android V2 signing algorithm to build channel packages, resolving security vulnerabilities introduced by the Android V1 signing algorithm when packaging channel packages and improving the stability of the channel packages. Furthermore, by storing channel packages for different versions of the application in different file paths, version isolation is achieved, resolving the issue of channel package data being overwritten with each application version release, which could lead to corrupted channel packages during download.

[0118] It should be noted that, based on Figure 2 During the distribution of the channel package to the corresponding distribution channel, the server also monitors the distribution status of the channel package and determines whether to release storage space based on the distribution status. For illustration, steps 208 to 210 are added after step 207, as follows: Figure 4 The steps are as follows:

[0119] Step 208: The server executes a distribution status monitoring script to poll the distribution status of the channel packages.

[0120] The distribution status monitoring script is a script on the server used to monitor the distribution status of channel packages. Optionally, the distribution status monitoring script can also be used to detect abnormal states and reset the distribution status; for example, detecting abnormal states such as undistributed channel packages waiting for too long, channel package distribution time being too long, and channel package waiting for distribution retry time being too long; or, for example, marking the release status of the version release as successful after all channel packages have been released.

[0121] Optionally, the server distributes channel packages asynchronously; that is, the server can distribute multiple channel packages simultaneously.

[0122] Due to the impact of content delivery network (CDN) node synchronization, the server uses a polling method to detect the release status of channel packages.

[0123] Step 209: The server determines whether the distribution status of the channel package is complete.

[0124] Step 210: When the distribution status of the channel package is "distribution complete", the server clears the channel package stored in the local server.

[0125] Here, "local server" refers to the server itself. When the distribution status of each channel package in at least one channel package is "distribution complete," the server clears the at least one channel package stored in its own memory.

[0126] Optionally, the server distributes the channel packages to the corresponding distribution channels in batches. When all batches of channel packages have been distributed, the server clears the source package and channel package of the application stored in its own memory.

[0127] In summary, the application version release method provided in this embodiment, after the channel release is completed, the server clears its own stored channel packages and waits for the distribution of the next batch of channel packages, which can provide storage space for the storage and distribution of the next batch of channel packages.

[0128] It should also be noted that the server stores distribution channel IDs. The server clears invalid channel IDs from its storage to avoid building and distributing invalid channel packages. Figure 5 The illustrative steps are as follows:

[0129] Step 301: The server clears the publishing channel numbers in the storage that do not meet the preset conditions.

[0130] Optionally, the server periodically clears out publishing channel numbers that do not meet preset conditions from its stored publishing channel numbers.

[0131] Optionally, the preset conditions include at least one of the following:

[0132] The number of distribution channel IDs is less than or equal to the first quantity threshold; for example, the number of distribution channel IDs stored in the server cannot exceed 2000.

[0133] The publishing channel number is on a whitelist, which includes long-term valid publishing channel numbers. Long-term valid publishing channel numbers are set not to be automatically deleted; for example, official channel numbers are on the whitelist and will not be deleted during the cleanup process.

[0134] Within the first preset time period, the number of new users on the channel account exceeds the second threshold; for example, in the previous month, the number of new users on the third-party app store exceeded 300.

[0135] The release channel number is the newly added release channel number within the second preset time period; for example, the release channel number is the newly added release channel number this month.

[0136] It should be noted that the timing of the server clearing out publishing channel numbers that do not meet the preset conditions is not related to the execution order of steps 201 and 209. In the embodiments of this application, the execution time of step 301 is not limited.

[0137] In summary, the distribution channel management method provided in this embodiment can promptly delete invalid distribution channel numbers. By managing distribution channels, the construction and distribution of invalid channel packages are avoided, thereby increasing the efficiency of application version release and reducing the time required for application version release.

[0138] In some embodiments, users also manually set the release channel number corresponding to the application version release, that is, users manage channels manually, such as... Figure 6 The steps are as follows:

[0139] Step 401: Display the channel management interface of the version management system on the terminal.

[0140] The channel management interface includes a channel entry button control, which is used to trigger the entry of channel information for the published channel.

[0141] Optionally, the channel entry button control includes a single channel entry button control and / or a batch channel entry button control.

[0142] Optionally, the channel information includes at least one of the following: channel identifier (channel ID), channel type, channel name, channel status, and channel description.

[0143] Indicative, such as Figure 7 The channel ID can be 1001, 2002, etc.; the channel type can include third-party app stores and manufacturer app stores, etc.; the channel name can be 123, Android Market, etc.; the channel status can include normally valid, normally invalid, and temporarily added, etc. Among them, normally valid means that the release channel is valid during the application version release process, normally invalid means that the release channel is invalid during the application version release process, and temporarily added means that the release channel is valid during the current version release process of the application; the channel description is a description of the characteristics of the channel, such as the usage characteristic description of the release channel "channel number used for testing".

[0144] Step 402: The terminal receives the first trigger operation on the channel input button control.

[0145] Optionally, the terminal receives a first trigger operation on a single channel input button control to enable input for a single publishing channel.

[0146] Optionally, the terminal receives the first trigger operation on the batch channel entry button control to realize the batch entry of publishing channels.

[0147] Step 403: The terminal displays the channel entry interface.

[0148] Optionally, the terminal displays a single channel entry interface, which includes entry controls for channel type, channel status, channel ID, channel name, and channel description, used to enter the aforementioned publishing information for the publishing channel. (Illustrative example, such as...) Figure 8 Enter a single channel, the channel type is a third-party e-marketplace, the channel status is regular and valid, the channel ID is 110000, the channel name is test channel number, and the channel description is a channel number used for testing.

[0149] Optionally, the terminal displays a batch channel entry interface, which includes import controls to enable direct import of batch channels. (Illustrative example follows.) Figure 9 Enter channels in batches, with the channel status being temporarily added. The batch channel entry interface includes an import control that can import a table. The table contains the publishing information of the publishing channel written in a fixed format, such as Channel ID + Channel Type + Channel Name + Channel Description.

[0150] The channel entry interface includes a confirmation button control, which is used to confirm the channel information for the published channel.

[0151] Step 404: The terminal receives the second trigger operation on the OK button control.

[0152] Step 405: The terminal stores the channel information of the publishing channel in the server according to the second trigger operation.

[0153] As an illustration, the structure of channel information can be defined as follows:

[0154] Table 1. Channel Information Table Structure Definition

[0155] field name Field Description Data types channel_id Channel ID <![CDATA[ bi go(20)]]> channel_category Channel Category tinyint(1) channel_name Channel Name varchar(20) channel_state Channel status tinyint(1) gray_channel_flag Grayscale channel identifier tinyint(1)

[0156] It should be noted that the terminal can also modify the release information of the release channel through the version management system. The channel management interface also includes an edit button control for modifying the channel information of the release channel. The illustrative steps are as follows:

[0157] 1) The terminal receives a third trigger operation on the edit button control;

[0158] 2) The terminal displays the channel information editing interface based on the third trigger operation;

[0159] The editing interface includes controllable editing of channel information. This is illustrative; these controllable controls can be used to modify the channel status, channel type, or switch between grayscale and non-grayscale channels, etc. Figure 10 You can modify the channel status, changing it from "regularly valid" to "regularly invalid" or "temporarily added".

[0160] The editing interface includes a "Confirm Modification" button control, which is used to confirm that the modified channel information in the channel information is written to the server.

[0161] 3) The terminal receives the fourth trigger operation on the "Confirm" button control;

[0162] 4) The terminal writes the modified channel information into the server according to the fourth trigger operation.

[0163] It should also be noted that the terminal can also delete distribution channels through the version management system. The channel management interface also includes a delete button control, which is used to modify the deletion channel information. The illustrative steps are as follows:

[0164] 1) The terminal receives the fifth trigger operation on the delete button control;

[0165] 2) The terminal deletes the selected publishing channel based on the fifth trigger operation.

[0166] For example, in Figure 11 In the channel management interface, a delete button control is displayed. Clicking the delete button control will display a confirmation deletion interface overlaid on the channel management interface. After confirming the deletion, the selected publishing channel will be deleted.

[0167] like Figure 12 The channel management interface also allows filtering of distribution channels. If the filter condition is set to "Android Market", then only the channel information of distribution channels with "Android Market" as the channel name will be displayed on the channel management interface.

[0168] In summary, the publishing channel management method provided in this embodiment can manage publishing channels, avoid the construction and distribution of channel packages corresponding to invalid channels, improve publishing efficiency, and reduce publishing time.

[0169] In some embodiments, the version management system includes version management in addition to channel management. For example... Figure 13 The version management system's interface includes a publish button control, which triggers the display of the release management interface to release the application version. The illustrative steps are as follows:

[0170] 1) The terminal receives the first publish operation on the publish button control;

[0171] 2) The terminal displays the release management interface based on the first release operation; the release management interface includes a formal release button control;

[0172] 3) The terminal receives the second release operation from the official release button control;

[0173] 4) The terminal releases the application version according to the second release operation.

[0174] In other words, the terminal generates a distribution request based on the second release operation, uses the distribution request to build a channel package for the source package of the application, and distributes the channel package to the corresponding release channel to realize the version release of the application.

[0175] It should be noted that the version management interface includes official release editing controls and gray release editing controls, enabling gray release and official release of application versions;

[0176] When performing a canary release of an application version, the illustrative steps are as follows:

[0177] 1) The terminal receives editing operations on the grayscale release editing control;

[0178] 2) The terminal displays the first editing interface for grayscale release;

[0179] The first editing interface includes a grayscale channel selection control for selecting grayscale channels, which are grayscale channels written during channel management; the first editing interface also includes input controls for the application's version number, version name, and version description.

[0180] Indicative, such as Figure 14 The version number entered is 7.21.1, the version name is Anime 7.21.1, the version description is a new version release, and the selected gray-scale channels are 2002, 2056, and 2093.

[0181] The first editing interface includes a first submit button control, which is used to submit the edited grayscale published content.

[0182] 3) The terminal receives the first submit operation from the first submit button control;

[0183] 4) The terminal determines the release information of the application version based on the first submission operation, and displays the first determination interface of the release channel;

[0184] The release information includes the application's task identifier, the version identifier of the program code, the version number of the source package build code, and the release channel number.

[0185] Optionally, the first confirmation interface includes a first confirmation button control, which is used to confirm sending a source package build request to the server.

[0186] 5) The terminal receives the first confirmation operation from the first confirmation button control;

[0187] 6) The terminal determines the source package for building the application based on the first determination operation.

[0188] When officially releasing a version of the application, the illustrative steps are as follows:

[0189] 1) The terminal receives editing operations on the officially published editing control;

[0190] 2) The terminal displays the officially released second editing interface;

[0191] The second editing interface includes controls for entering the application's version number, version name, version description, and channel type. The channel type includes temporary valid channels and regular valid channels. For example... Figure 15 For illustrative purposes, the version number is entered as 7.21.1, the version name is Anime 7.21.1, the version description is "New Version Release", and the selected channel is "Temporary Valid Channel".

[0192] The second editing interface includes a second submit button control, which is used to submit the edited content for official publication.

[0193] 3) The terminal receives the second submit operation from the second submit button control;

[0194] 4) The terminal determines the release information of the application version based on the second submission operation, and displays the second determination interface of the release channel;

[0195] Optionally, the second confirmation interface includes a second confirmation button control, which is used to confirm sending a source package build request to the server.

[0196] 5) The terminal receives the second confirmation operation from the second confirmation button control;

[0197] 6) The terminal determines the source package for building the application based on the second determination operation.

[0198] Indicative, such as Figure 16 The release management interface also allows filtering of version branches. For example, filtering for version branch "7.21.0" will only display the release content of version branch "7.21.0".

[0199] Secondly, such as Figure 17The release management interface also includes a "Go to Release" button control. When a trigger operation is received on the "Go to Release" button control, the version management interface is displayed on the terminal to manage the version release of the application.

[0200] Again, such as Figure 18 The release management interface also includes a "Cancel Release" button control, which is used to cancel the release of an application version.

[0201] Furthermore, such as Figure 19 The release management interface also includes a "Start Distribution" button control, which is used to trigger the construction and distribution of channel packages.

[0202] It should also be noted that the version control system also includes a release management interface, which is displayed after the source package for building the application is determined during the canary release / official release process.

[0203] In some embodiments, the publishing management interface displays the publishing status, such as "Pending Publishing," "Published Successfully," or "Published Cancelled." When the publishing status is "Published Successfully," a "View Details" button control is displayed on the publishing management interface to view the details screen, such as... Figure 20 Optionally, the details page includes a channel package download control for downloading the channel package.

[0204] After the source package is successfully built, a source package download control is displayed on the release management interface for downloading the source package. For example... Figure 21 The terminal's publishing management interface also displays a "Source Package Download" button control, which is used to download the application's source package. When the terminal receives a trigger operation from the "Source Package Download" button control, it displays the download method, such as downloading by scanning a QR code.

[0205] The release management interface also displays application version release controls and release cancellation controls; when the terminal receives a version release operation on the version release control, the terminal sends a distribution request to the server to realize the construction and distribution of channel packages.

[0206] Optionally, upon receiving a version release operation from the version release control, the terminal displays a third confirmation interface; this interface includes a third confirmation button control; the terminal receives the third confirmation operation from the third confirmation button control and sends a distribution request to the server to achieve the construction and distribution of the channel package. (Illustrative example, such as...) Figure 20 The third confirmation screen includes release information, which may include the source package's version number, name, build time, version code, version name, release type, and version description, etc. Upon successful release, the release management interface will display "Completed," indicating that the application version has been successfully released.

[0207] Optionally, the terminal receives a cancellation operation from the release cancellation control, which is used to cancel the release of the application version.

[0208] It should be noted that terminal version release records and channel release records are stored on the server. The data structure of the version release record is illustrated in Table 2.

[0209] Table 2. Definition of the Data Table Structure for Published Records

[0210] field name Field Description Data types rdm_job_id RDM Task ID <![CDATA[ bi go(20)]]> publish_type Release type tinyint(1) version_code APP version code int(11) svn_no SVN version number bigint(20) version_no APP release version number varchar(20) version_name APP release version name varchar(20) publish_state Release status tinyint(2) build_apk_name Build package name varchar(64)

[0211] The data structure of the channel release records is shown in Table 3:

[0212] Table 3. Structure of Channel Release Records

[0213] Fields Field Description Data types list_id Version Release List ID bigint(20) channel_id Channel ID bigint(20) publish_state Distribution status tinyint(1)

[0214] It should also be noted that in some of the above embodiments, the terminal logs into a webpage (WEB) containing the version management system to enable interaction with the server, such as... Figure 22 The interaction process can be described in the following steps:

[0215] Step 11: The terminal requests the corresponding server interface according to the operation command.

[0216] Step 22: The server returns response data to the terminal.

[0217] Step 33: The terminal displays the corresponding visual interface.

[0218] The above three steps enable interaction between the front-end and the server.

[0219] In some embodiments, the terminal displays prompts for application releases and updates, such as... Figure 23 The illustrative steps are as follows:

[0220] Step 501, Begin.

[0221] Step 502: Query the configuration information corresponding to the APP channel number.

[0222] The configuration information corresponding to the APP channel number includes the first version number of the application.

[0223] Step 503: Query the corresponding configuration information from official channels.

[0224] The configuration information provided by official channels includes the application's second version number.

[0225] Step 504: Determine if the configuration information corresponding to the APP channel number is empty.

[0226] If the configuration information corresponding to the APP channel number is empty, proceed to step 505; if the configuration information corresponding to the APP channel number is not empty, proceed to step 506.

[0227] Step 505: Determine whether the version number in the configuration information corresponding to the official channel is greater than the local version number.

[0228] The terminal determines whether the second version number is greater than the local version number. If the version number in the configuration information corresponding to the official channel is less than or equal to the local version number, proceed to step 508; if the version number in the configuration information corresponding to the official channel is greater than the local version number, proceed to step 509.

[0229] Step 506: Determine whether the version number in the configuration information corresponding to the APP channel number is greater than the version number in the configuration information corresponding to the official channel.

[0230] The terminal determines whether the first version number is greater than the second version number. If the version number in the configuration information corresponding to the APP channel number is less than or equal to the version number in the configuration information corresponding to the official channel, proceed to step 505; if the version number in the configuration information corresponding to the APP channel number is greater than the version number in the configuration information corresponding to the official channel, proceed to step 507.

[0231] Step 507: Determine whether the version number in the configuration information corresponding to the APP channel number is greater than the local version number.

[0232] The terminal determines whether the first version number is greater than the local version number. If the version number in the configuration information corresponding to the APP channel number is less than or equal to the local version number, proceed to step 508; if the version number in the configuration information corresponding to the APP channel number is greater than the local version number, proceed to step 509.

[0233] Step 508, no upgrade prompt.

[0234] Step 509 prompts for an upgrade.

[0235] Step 510, End.

[0236] In summary, the application upgrade prompt method provided in this embodiment can determine whether to prompt for an upgrade by comparing official channels with local channels, thus achieving fault tolerance.

[0237] Please refer to Figure 24 This is another exemplary embodiment of the present application providing a method for publishing a version of an application. The method illustrates the logical process of publishing or updating an application, and includes:

[0238] Step 601, Begin.

[0239] Step 602: Enter the release information of the application version in the terminal.

[0240] Users enter application version release information in the terminal. This release information includes at least one of the following: application task identifier, program code version identifier, source package build code version number, application version number, application version name, application version description, and release channel number.

[0241] Optionally, a browser is installed on the terminal that supports the operation of a web-based version management system; the user enters the release information of the application version on the user interface of the aforementioned version management system.

[0242] After the user enters the above publishing information, the terminal writes the above publishing information into the channel package building server.

[0243] Step 603: Call the RDM platform's API to start building the application's source package.

[0244] The terminal sends a source package build request to the server; the server calls the RDM platform's API to start building the application's source package based on the source package build request, and builds the application's source package by running the RDM platform's source package build server.

[0245] If the build of the application's source package starts successfully, proceed to step 604; if the build of the application's source package fails to start, proceed to step 613.

[0246] Step 604: Execute the source package build monitoring script.

[0247] The application's source package is built asynchronously. The server executes the source package build monitoring script to poll and detect the build status of the application's source package. When the build status of the source package is "build complete", step 605 is executed.

[0248] Step 605: Verify the build parameters of the source package.

[0249] The server verifies the build parameters of the source package, which include at least one of the application's task identifier, the program code version identifier, and the source package build code.

[0250] For illustration, the server checks whether the keywords in the name of the source package match the construction parameters; when the keywords match the construction parameters, the check is deemed to have passed and step 606 is executed; when the keywords do not match the construction parameters, the check is deemed to have failed and step 613 is executed.

[0251] Step 606: Pull the built source package from the source package build server.

[0252] The server belongs to a server cluster. The server pulls the built application source package from the source package build server and stores the source package on each server in the server cluster. When the server successfully pulls the source package, step 607 is executed; when the server fails to pull the source package, step 613 is executed.

[0253] Step 607: Obtain the release channel number for the application version release.

[0254] The server stores the release channel number. The server retrieves the release channel number corresponding to the version release of the application. The release channel number is either preset by the user or is the default release channel number in the version management system.

[0255] Step 608: Upload the application's source package to the file management platform.

[0256] The server uploads the application's source package to the SPM platform, and SPM manages the source package's files.

[0257] Step 609: Initiate the process of building and distributing the channel package.

[0258] The server creates a channel package build task, builds the application into a channel package corresponding to the release channel number, and uploads the channel package to the SPM platform. The channel package distribution server running the SPM platform then distributes the channel package to the corresponding release channel. The SPM platform also manages the files of the channel package.

[0259] Step 610: Distribution complete, update release status is now "released successfully".

[0260] When the channel package distribution server has finished distributing the channel package, the server updates the version release status to successful and writes the version release status into the release management data.

[0261] Step 611: Push channel configuration information, and it will take effect online.

[0262] The server pushes configuration information to the terminal, making the application version release effective online. In other words, users can download and install the application through the app store.

[0263] Optionally, the server can notify the user of the successful release of the application version via email. Upon receiving the notification of successful version release, the user can manually trigger the push of channel configuration information.

[0264] Step 612: Clean up temporary files.

[0265] The server cleans up the source and channel packages of the application in its storage, freeing up storage space.

[0266] Step 613, the update release status is failed.

[0267] The server updates the release status to failed and writes the release status to the release management data.

[0268] In summary, the application version release method provided in this application eliminates the need to manually build the application source package or download and upload the source package during the release and update of the APP. This simplifies the application version release process, avoids the risk of damage during source package transmission, reduces the waste of human resources, and solves the problem of cumbersome interaction in APP release and update.

[0269] based on Figure 24 When the server builds a channel package, it first generates a channel package build task, such as... Figure 25 The steps are as follows:

[0270] Step 60901, Begin.

[0271] Step 60902: The server executes the channel package build script.

[0272] Step 60903: The server generates a channel package build task.

[0273] Each channel package building task has a unique task identifier.

[0274] In step 60904, the server associates the published channel number with the channel package build task.

[0275] The association between the release channel number and the channel package build task is used to instruct the server to execute the channel package build task in order to build the channel package corresponding to the associated release channel number.

[0276] Optionally, the server associates the release channel number with the channel package build task using a task identifier.

[0277] In step 60905, the server places the channel package build task into the task queue.

[0278] The server places the channel package build task into the task queue, waiting to be executed.

[0279] Step 60906, End.

[0280] based on Figure 25 The server can build and distribute channel packages through methods such as... Figure 26 The logical flow shown is implemented through the following steps:

[0281] Step 60907: Server probes the task queue.

[0282] Step 60908: The server detects whether there is a channel package build task in the task queue.

[0283] When the server detects that there is a channel package building task in the task queue, it executes step 60909; when the server detects that there is no channel package building task in the task queue, it waits for 1 second (s) and then returns to execute step 60907.

[0284] Step 60909: The server determines whether the release channel number associated with the channel package build task has been exhausted.

[0285] The server determines whether all channel packages corresponding to the release channel number associated with the channel package building task have been built. If all channel packages corresponding to the associated release channel number have been built, it means that the release channel number has been consumed, and step 60917 is executed; if there are channel packages corresponding to the associated release channel number that have not been built, it means that the release channel number has not been consumed, and step 60910 is executed.

[0286] Step 60910: The server retrieves a fixed number of release channel numbers from the unconsumed release channel numbers.

[0287] Step 60911: The server updates the channel number status of the aforementioned quantitative release channel number to "processing".

[0288] Step 60912: The server constructs the channel package corresponding to the quantitative release channel number.

[0289] Step 60913: The server uploads the channel package to the SPM platform and sends a distribution request to the SPM platform.

[0290] This distribution request instructs the channel package distribution server to distribute the channel package to the corresponding distribution channel. The channel package distribution server supports the operation of the SPM platform.

[0291] Step 60914: The server polls to detect the release status of the channel package.

[0292] The server polls the SPM platform to detect the distribution progress of the channel package and determines its distribution status. For example, if the SPM platform has completed the distribution of the channel package, the distribution status is determined to be "distribution complete". When the channel package distribution is complete, step 60915 is executed; when the channel package distribution is not complete, wait for 3 seconds and return to execute step 60914.

[0293] Step 60915: The server updates the distribution status of the channel package.

[0294] The server updates the distribution status of the channel package to "distribution incomplete".

[0295] Step 60916: The server deletes the channel package.

[0296] The server deletes the channel packets stored within itself.

[0297] Step 60917: The server releases task queue resources.

[0298] The server releases task queue resources, waits 1 second, and then returns to execution step 60907.

[0299] Please refer to Figure 27 This application discloses an application version publishing device according to an exemplary embodiment. The device can implement part or all of the server through software, hardware, or a combination of both. The device includes:

[0300] The receiving module 701 is used to receive a source package construction request sent by the terminal. The source package construction request includes the application's release information, which includes the release channel number.

[0301] The first building module 702 is used to call the application programming interface (API) of the source package builder according to the source package build request, and build the application's program code into the application's source package through the source package builder;

[0302] The sending module 703 is used to receive version release requests sent by the terminal;

[0303] The second building module 704 is used to build the source package into a channel package corresponding to the release channel number according to the version release request;

[0304] The sending module 703 is used to send a distribution request to the channel package distribution server. The distribution request includes a channel package and is used to request the channel package distribution server to distribute the channel package to the publishing channel corresponding to the publishing channel number.

[0305] In some embodiments, the second construction module 704 is used to create a channel package construction task according to the version release request and add the channel package construction task to the task queue; execute the channel package construction task in the task queue, write the release channel number into the source package respectively, and generate the corresponding channel package.

[0306] In some embodiments, the second construction module 704 is used to write the i-th release channel number into the source packet using a signature algorithm, and generate the i-th channel packet corresponding to the i-th release channel number, where i is a positive integer.

[0307] In some embodiments, the first construction module 702 is configured to call an API according to a source package construction request, asynchronously build the source package through a source package construction program; execute a construction status monitoring script to poll and detect the construction status of the source package; and retrieve the source package from the source package construction server when the construction status of the source package is completed.

[0308] In some embodiments, the release information includes the application's task identifier, the program code's version identifier, and the version number of the source package's build code;

[0309] The device also includes:

[0310] Matching module 705 is used to obtain keywords in the name of the source package and match the keywords with the application's task identifier, the program code's version identifier, and the version number of the source package's build code. When the keywords match the application's task identifier, the program code's version identifier, and the version number of the source package's build code, the step is to obtain the source package from the source package build server.

[0311] In some embodiments, the device further includes:

[0312] The clearing module 706 is used to execute a distribution status monitoring script to poll the distribution status of channel packages; when the distribution status of a channel package is "distribution complete", the channel package stored in the local server is cleared.

[0313] In some embodiments, the clearing module 706 is further configured to clear publishing channel numbers in the stored publishing channel numbers that do not meet preset conditions.

[0314] In some embodiments, the preset conditions include at least one of the following:

[0315] The number of release channel IDs is less than or equal to the first quantity threshold;

[0316] The publishing channel number is on a whitelist, which includes long-term valid publishing channel numbers. Long-term valid publishing channel numbers are set not to be automatically deleted.

[0317] Within the first preset time period, the number of new users added to the channel account exceeds the second threshold.

[0318] The release channel number is the newly added release channel number within the second preset time period.

[0319] In summary, the application version release device provided in this embodiment receives a source package build request sent by a terminal, the source package build request including application release information, including a release channel number; calls the API of the source package build program according to the source package build request, and uses the source package build program to build the application's program code into an application source package; receives a version release request sent by the terminal; builds the source package into channel packages corresponding to the release channel number according to the version release request; and sends a distribution request to the channel package distribution server, the distribution request including the channel package, and the channel package distribution server distributes the channel package to the release channel corresponding to the release channel number according to the distribution request.

[0320] The aforementioned application version release device realizes the release and update of the APP by receiving source package build requests and channel package distribution requests from the terminal. In the process of APP release and update, there is no need to manually build the application source package or download and upload the source package, which simplifies the application version release process, eliminates the risk of damage during source package transmission, reduces the waste of human resources, and solves the problem of cumbersome interaction in APP release and update.

[0321] The application's version release device also automatically builds the channel package corresponding to the release channel number through the server, eliminating the need to manually build each channel package for each release channel number and reducing the waste of human resources.

[0322] Please refer to Figure 28 This diagram illustrates a structural block diagram of a terminal 800 provided in an exemplary embodiment of this application. The terminal 800 may be a smartphone, tablet computer, MP3 player (Moving Picture Experts Group Audio Layer III), MP4 player (Moving Picture Experts Group Audio Layer IV), laptop computer, or desktop computer. The terminal 800 may also be referred to as a user device, portable terminal, laptop terminal, desktop terminal, or other names.

[0323] Typically, terminal 800 includes a processor 801 and a memory 802.

[0324] Processor 801 may include one or more processing cores, such as a quad-core processor, an octa-core processor, etc. Processor 801 may be implemented using at least one hardware form selected from DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), and PLA (Programmable Logic Array). Processor 801 may also include a main processor and a coprocessor. The main processor, also known as a CPU (Central Processing Unit), is used to process data in the wake-up state; the coprocessor is a low-power processor used to process data in the standby state. In some embodiments, processor 801 may integrate a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content to be displayed on the screen. In some embodiments, processor 801 may also include an AI (Artificial Intelligence) processor, which is used to handle computational operations related to machine learning.

[0325] The memory 802 may include one or more computer-readable storage media, which may be non-transitory. The memory 802 may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices or flash memory devices. In some embodiments, the non-transitory computer-readable storage media in the memory 802 are used to store at least one instruction, which is executed by the processor 801 to implement the application version release method provided in the method embodiments of this application.

[0326] In some embodiments, the terminal 800 may also optionally include a peripheral device interface 803 and at least one peripheral device. The processor 801, memory 802, and peripheral device interface 803 can be connected via a bus or signal line. Each peripheral device can be connected to the peripheral device interface 803 via a bus, signal line, or circuit board. Specifically, the peripheral device includes at least one of the following: a radio frequency circuit 804, a display screen 805, an audio circuit 806, a positioning component 807, and a power supply 808.

[0327] Peripheral device interface 803 can be used to connect at least one I / O (Input / Output) related peripheral device to processor 801 and memory 802. In some embodiments, processor 801, memory 802 and peripheral device interface 803 are integrated on the same chip or circuit board; in some other embodiments, any one or two of processor 801, memory 802 and peripheral device interface 803 can be implemented on separate chips or circuit boards, which is not limited in this embodiment.

[0328] The radio frequency (RF) circuit 804 is used to receive and transmit RF (Radio Frequency) signals, also known as electromagnetic signals. The RF circuit 804 communicates with communication networks and other communication devices via electromagnetic signals. The RF circuit 804 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals back into electrical signals. Optionally, the RF circuit 804 includes: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a user identity module card, etc. The RF circuit 804 can communicate with other terminals through at least one wireless communication protocol. This wireless communication protocol includes, but is not limited to: metropolitan area networks (MANs), various generations of mobile communication networks (2G, 3G, 4G, and 5G), wireless local area networks (WLANs), and / or WiFi (Wireless Fidelity) networks. In some embodiments, the RF circuit 804 may also include circuitry related to NFC (Near Field Communication), which is not limited in this application.

[0329] Display screen 805 is used to display a UI (User Interface). This UI may include graphics, text, icons, videos, and any combination thereof. When display screen 805 is a touch display screen, it also has the ability to collect touch signals on or above its surface. These touch signals can be input as control signals to processor 801 for processing. In this case, display screen 805 can also be used to provide virtual buttons and / or a virtual keyboard, also known as soft buttons and / or a soft keyboard. In some embodiments, display screen 805 may be a single screen, serving as the front panel of terminal 800; in other embodiments, display screen 805 may be at least one screen, disposed on different surfaces of terminal 800 or in a folded design; in some embodiments, display screen 805 may be a flexible display screen, disposed on a curved or folded surface of terminal 800. Furthermore, display screen 805 may be configured as a non-rectangular, irregular shape, i.e., a non-rectangular screen. Display screen 805 may be made of materials such as LCD (Liquid Crystal Display) or OLED (Organic Light-Emitting Diode).

[0330] The audio circuit 806 may include a microphone and a speaker. The microphone is used to collect sound waves from the user and the environment, converting the sound waves into electrical signals that are input to the processor 801 for processing, or input to the radio frequency circuit 804 for voice communication. For stereo sound acquisition or noise reduction purposes, multiple microphones may be used, each located at a different part of the terminal 800. The microphone may also be an array microphone or an omnidirectional microphone. The speaker is used to convert the electrical signals from the processor 801 or the radio frequency circuit 804 into sound waves. The speaker may be a conventional diaphragm speaker or a piezoelectric ceramic speaker. When the speaker is a piezoelectric ceramic speaker, it can convert electrical signals not only into audible sound waves but also into inaudible sound waves for purposes such as distance measurement. In some embodiments, the audio circuit 806 may also include a headphone jack.

[0331] The positioning component 807 is used to locate the current geographical location of the terminal 800 in order to enable navigation or LBS (Location Based Service).

[0332] Power supply 808 is used to supply power to the various components in terminal 800. Power supply 808 can be AC ​​power, DC power, a disposable battery, or a rechargeable battery. When power supply 808 includes a rechargeable battery, the rechargeable battery can support wired charging or wireless charging. The rechargeable battery can also be used to support fast charging technology.

[0333] Those skilled in the art will understand that Figure 28 The structure shown does not constitute a limitation on terminal 800 and may include more or fewer components than shown, or combine certain components, or use different component arrangements.

[0334] Figure 29 A schematic diagram of a server provided in one embodiment of this application is shown. This server is used to implement the application version release method provided in the above embodiments. Specifically:

[0335] The server 900 includes a central processing unit (CPU) 901, a system memory 904 including random access memory (RAM) 902 and read-only memory (ROM) 903, and a system bus 905 connecting the system memory 904 and the CPU 901. The server 900 also includes a basic input / output system (I / O system) 906 that facilitates information transfer between various devices within the computer, and a mass storage device 907 for storing the operating system 913, application programs 914, and other program modules 915.

[0336] The basic input / output system 906 includes a display 908 for displaying information and an input device 909 for user input, such as a mouse or keyboard. Both the display 908 and the input device 909 are connected to the central processing unit 901 via an input / output controller 910 connected to the system bus 905. The basic input / output system 906 may also include the input / output controller 910 for receiving and processing input from multiple other devices such as a keyboard, mouse, or electronic stylus. Similarly, the input / output controller 910 also provides output to a display screen, printer, or other types of output devices.

[0337] The mass storage device 907 is connected to the central processing unit 901 via a mass storage controller (not shown) connected to the system bus 905. The mass storage device 907 and its associated computer-readable media provide non-volatile storage for the server 900. That is, the mass storage device 907 may include computer-readable media (not shown) such as a hard disk or a CD-ROM drive.

[0338] Without loss of generality, the computer-readable medium may include computer storage media and communication media. Computer storage media include volatile and non-volatile, removable and non-removable media implemented using any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media include RAM, ROM, EPROM, EEPROM, flash memory or other solid-state storage technologies, CD-ROM, DVD or other optical storage, magnetic tape cassettes, magnetic tape, disk storage, or other magnetic storage devices. Of course, those skilled in the art will recognize that the computer storage media are not limited to the above-mentioned types. The system memory 904 and mass storage device 907 described above can be collectively referred to as memory.

[0339] According to various embodiments of this application, the server 900 can also be connected to a remote computer on a network, such as the Internet. That is, the server 900 can be connected to a network 912 via a network interface unit 911 connected to the system bus 905, or the network interface unit 911 can be used to connect to other types of networks or remote computer systems (not shown).

[0340] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0341] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.

[0342] The above description is only a preferred embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

Claims

1. A method for releasing a version of an application, characterized in that, The method includes: The receiving terminal sends a source package build request, which includes the release information of the application, including the release channel number and the storage location of the application's program code; The application programming interface (API) of the source package builder is invoked according to the source package build request. The source package builder obtains the program code from the storage location and builds the program code into the source package of the application. The source package does not include the release channel number. Execute the build status monitoring script to poll and detect the build status of the source package; When the build status of the source package is "build complete", the source package is obtained from the source package build server, which supports the execution of the source package build program; Receive the version release request sent by the terminal; Based on the version release request, the source packages are respectively constructed into channel packages corresponding to the release channel number; A distribution request is sent to the channel package distribution server. The distribution request includes the channel package and is used to request the channel package distribution server to distribute the channel package to the publishing channel corresponding to the publishing channel number.

2. The method according to claim 1, characterized in that, The step of constructing the source packages into channel packages corresponding to the release channel number according to the version release request includes: Create a channel package build task based on the release request, and add the channel package build task to the task queue; Execute the channel package building task in the task queue, write the release channel number into the source package respectively, and generate the corresponding channel package.

3. The method according to claim 2, characterized in that, The step of writing the release channel number into the source package to generate the corresponding channel package includes: A signature algorithm is used to write the i-th release channel number into the source packet, generating the i-th channel packet corresponding to the i-th release channel number, where i is a positive integer.

4. The method according to claim 1, characterized in that, The method further includes: The source package is built asynchronously using the source package build program.

5. The method according to claim 1, characterized in that, The release information includes the application's task identifier, the program code's version identifier, and the version number of the source package's build code; Before obtaining the source package from the source package build server, the method further includes: Obtain keywords from the name of the source package, and match the keywords with the task identifier of the application, the version identifier of the program code, and the version number of the source package build code; When the keyword matches the application's task identifier, the program code's version identifier, and the source package build code's version number, the step of obtaining the source package from the source package build server is executed.

6. The method according to any one of claims 1 to 5, characterized in that, After sending the distribution request to the channel package distribution server, the process includes: Execute the distribution status monitoring script to poll the distribution status of the channel packages; When the distribution status of the channel package is "distribution complete", the channel package stored in the local server is cleared.

7. The method according to any one of claims 1 to 5, characterized in that, Before the source packet construction request sent by the receiving terminal, the following is also included: Clear the stored distribution channel numbers that do not meet the preset conditions.

8. The method according to claim 7, characterized in that, The preset conditions include at least one of the following: The number of release channel numbers is less than or equal to a first quantity threshold; The publishing channel number is a whitelist, which includes long-term valid publishing channel numbers, and these long-term valid publishing channel numbers are set not to be automatically deleted. Within a first preset time period, the number of new users of the publishing channel number exceeds a second quantity threshold; The release channel number is a newly added release channel number within the second preset time period.

9. An application version release device, characterized in that, The device includes: The receiving module is used to receive a source package construction request sent by the terminal. The source package construction request includes the release information of the application, and the release information includes the release channel number and the storage location of the application's program code. The first construction module is configured to call the application programming interface (API) of the source package build program according to the source package build request, obtain the program code from the storage location through the source package build program, and build the program code into the source package of the application, wherein the source package does not include the release channel number; execute a build status monitoring script to poll and detect the build status of the source package; when the build status of the source package is "build complete", obtain the source package from the source package build server, wherein the source package build server supports the execution of the source package build program; A sending module is used to receive version release requests sent by the terminal; The second construction module is used to construct the source package into a channel package corresponding to the release channel number according to the version release request; The sending module is used to send a distribution request to the channel package distribution server. The distribution request includes the channel package and is used to request the channel package distribution server to distribute the channel package to the publishing channel corresponding to the publishing channel number.

10. A server, the server comprising: Memory; A processor connected to the memory; The processor is configured to load and execute executable instructions to implement the application version release method as described in any one of claims 1 to 8.

11. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores at least one instruction; the at least one instruction is loaded and executed by a processor to implement the version release method of the application as described in any one of claims 1 to 8.

Citation Information

Patent Citations

  • Multi-channel packaging method and device for installation package, computer equipment and storage medium

    CN108037949A