Software package automatic uploading method, device and equipment and storage medium
Patent Information
- Application Number
- CN202510606578.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-12
- Publication Date
- 2026-10-27
- Estimated Expiration
- 2045-05-12
AI Technical Summary
[0004]本申请提供一种软件包自动上传方法、装置、设备及存储介质,通过自动化提取软件包中的核心信息,在权限匹配成功的条件下自动构建并上传数据,无需外部传入额外的上传信息参数,解决了传统上传流程中人工配置烦琐、权限校验复杂、上传流程易中断的问题,实现了软件包上传过程的全自动化和高可靠性,提高了软件上架发布自动化程度和上传效率
[0017]在本申请中,通过解析指定路径下的软件包文件,提取软件对应的上传数据,其中上传数据包括开发数据与元数据,开发数据包含开发团队标识及团队名称,元数据包含软件名称及版本信息;根据获取的发布者账号,查询该账号关联的多个发布团队标识,判断所提取的开发团队标识与发布团队标识之间的匹配关系;在存在一个发布团队标识与开发团队标识一致的情况下,基于提取的上传数据和待上传软件包生成上传包,利用发布者账号,以匹配的开发团队作为主体将上传包上传至目标发布平台。通过上述方案,可在软件包上传过程中实现开发团队与发布团队信息的自动校验,确保上传操作的准确性与合规性,提升了软件发布流程的自动化程度和管理效率,降低了因人工干预导致的出错率与审核成本。
Smart Images

Figure CN120768887B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular to a method, apparatus, device and storage medium for automatically uploading software packages. Background Technology
[0002] In the current multi-platform application ecosystem, if developers want to push their self-developed software products to the target distribution platform, they often need to first upload the packaged and distributable software package to the management backend of the corresponding platform, and submit application data and version release configurations, etc., to complete a series of complex pre-launch operations.
[0003] To improve release efficiency, major platforms typically provide graphical upload tools and command-line interface tools to support automated upload processes. However, these processes rely on numerous parameters, are complex to configure, involve many steps, are prone to errors, and require highly skilled operators. Software upload difficulties have become a key bottleneck affecting high-frequency version releases and large-scale deployments of software products. There is an urgent need for a universal software package upload solution with high stability, automation, fault tolerance, and cross-platform compatibility to support the efficient operation of DevOps processes and continuous delivery systems in modern software engineering. Summary of the Invention
[0004] This application provides a method, apparatus, device, and storage medium for automatically uploading software packages. By automatically extracting core information from the software package, and automatically constructing and uploading data under the condition of successful permission matching, it eliminates the need for external input of additional upload information parameters. This solves the problems of cumbersome manual configuration, complex permission verification, and easy interruption of the upload process in traditional upload processes, and achieves full automation and high reliability of the software package upload process, thereby improving the automation level and upload efficiency of software release.
[0005] Firstly, this application provides a method for automatically uploading software packages, including:
[0006] The software package to be uploaded is obtained based on the input software package storage path. The software upload data is extracted from the software package. The upload data includes development data and metadata. The development data includes the development team identifier and team name. The metadata includes the software name and software version.
[0007] Obtain the publisher account used to upload the software package, query the publisher team identifiers corresponding to several publisher teams to which the publisher account belongs, and determine the matching status of the development team identifier and the publisher team identifier;
[0008] If a match is found among the published team identifiers that corresponds to the development team identifier, an upload package is generated based on the uploaded data and the software package. The upload package is then uploaded to the target platform using the publisher account with the development team corresponding to the development team identifier as the subject.
[0009] Secondly, this application provides an automatic software package uploading device, comprising:
[0010] The software package parsing module is used to obtain the software package to be uploaded based on the input software package storage path, and extract the software upload data from the software package. The upload data includes development data and metadata. The development data includes the development team identifier and team name, and the metadata includes the software name and software version.
[0011] The publisher verification module is used to obtain the publisher account used to upload the software package, query the publisher team identifiers corresponding to several publisher teams to which the publisher account belongs, and determine the matching status of the development team identifier and the publisher team identifier.
[0012] The upload package publishing module is used to generate an upload package based on the upload data and the software package when there is a match between the publishing team identifier and the development team identifier among the several publishing team identifiers, and to upload the upload package to the target platform using the publisher account with the development team corresponding to the development team identifier as the subject.
[0013] Thirdly, this application provides a software package automatic upload device, comprising:
[0014] One or more processors;
[0015] A memory that stores one or more programs that, when executed by one or more processors, cause the one or more processors to implement the automatic software package upload method as described in the first aspect.
[0016] Fourthly, this application provides a storage medium containing computer-executable instructions, which, when executed by a computer processor, are used to perform the automatic software package uploading method as described in the first aspect.
[0017] In this application, software package files under a specified path are parsed to extract the corresponding upload data. This upload data includes development data and metadata. The development data includes the development team identifier and team name, while the metadata includes the software name and version information. Based on the obtained publisher account, multiple publisher team identifiers associated with that account are queried to determine the matching relationship between the extracted development team identifier and the publisher team identifier. If a publisher team identifier matches the development team identifier, an upload package is generated based on the extracted upload data and the software package to be uploaded. Using the publisher account, the upload package is uploaded to the target publishing platform with the matched development team as the subject. This solution enables automatic verification of development team and publisher team information during the software package upload process, ensuring the accuracy and compliance of the upload operation, improving the automation and management efficiency of the software release process, and reducing the error rate and review costs caused by manual intervention. Attached Figure Description
[0018] Figure 1 This is a flowchart of an automatic software package uploading method provided in an embodiment of this application;
[0019] Figure 2 This is a flowchart illustrating the software package distribution account matching process provided in this application embodiment;
[0020] Figure 3 This is a flowchart illustrating the sorting of alternative publishing accounts provided in this application embodiment;
[0021] Figure 4 This is a flowchart illustrating the reading of the backup publishing account provided in this application embodiment;
[0022] Figure 5 This is a flowchart of the upload packet verification provided in an embodiment of this application;
[0023] Figure 6 This is a structural diagram of an automatic software package uploading device provided in an embodiment of this application;
[0024] Figure 7 This is a structural diagram of a software package automatic upload device provided in an embodiment of this application. Detailed Implementation
[0025] To make the objectives, technical solutions, and advantages of this application clearer, specific embodiments of this application will be described in further detail below with reference to the accompanying drawings. It should be understood that the specific embodiments described herein are merely for explaining this application and not for limiting it. It should also be noted that, for ease of description, only the parts relevant to this application are shown in the drawings, not all of them. Before discussing exemplary embodiments in more detail, it should be mentioned that some exemplary embodiments are described as processes or methods depicted as flowcharts. Although the flowcharts describe operations (or steps) as being processed sequentially, many of these operations can be performed in parallel, concurrently, or simultaneously. Furthermore, the order of the operations can be rearranged. A process can be terminated when its operation is completed, but it may also have additional steps not included in the drawings. A process can correspond to a method, function, procedure, subroutine, subroutine, etc.
[0026] The terms "first," "second," etc., used in the specification and claims of this application are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such use of data can be interchanged where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein, and the objects distinguished by "first," "second," etc., are generally of the same class and the number of objects is not limited; for example, a first object can be one or more. Furthermore, in the specification and claims, "and / or" indicates at least one of the connected objects, and the character " / " generally indicates that the preceding and following objects are in an "or" relationship.
[0027] In common existing implementations, developers who want to make their applications available for download typically need to upload their application packages to the relevant app store platform and undergo review and release. To facilitate application uploads, platforms usually provide graphical user interface tools, as well as dedicated command-line tools to support batch and automated uploads. However, while these command-line tools offer some degree of automation, they often suffer from cumbersome procedures and require multiple parameter inputs, creating a significant operational burden and efficiency issues, especially for developers who frequently upload applications. Furthermore, to ensure the security and access control of the upload process, platforms typically provide several methods for verifying and authorizing upload operations. These authorization methods may include using platform account passwords, API keys, or application-specific passwords, but different authorization methods bring varying degrees of permission flexibility, management costs, and security risks.
[0028] Therefore, existing upload methods have certain limitations in terms of convenience, stability, and permission management, and there is an urgent need for a more efficient, flexible, and secure automated upload solution to meet the needs of developers in application release.
[0029] To address the aforementioned issues, this embodiment provides an automated software package upload method. This method aims to simplify the upload process, optimize its efficiency and security, and help developers achieve more efficient, stable, and secure software package distribution. By using automated tools and strategies to replace the traditional manual upload process, it reduces human intervention and operational complexity, while simultaneously improving the flexibility of upload permission management and system security.
[0030] The automatic software package upload method provided in this embodiment can be executed by an automatic software package upload device. This device can be implemented through software and / or hardware, and can consist of two or more physical entities, or a single physical entity. For example, the automatic software package upload device can be an operations and maintenance server used to maintain the normal operation of services.
[0031] The automatic software package upload device has at least one type of operating system installed, including but not limited to Android, Linux, and Windows. The device can install at least one application based on the operating system; this application can be a built-in application of the operating system or an application downloaded from a third-party device or server. In this embodiment, the automatic software package upload device has at least one application capable of executing the automatic software package upload method.
[0032] For ease of understanding, this embodiment uses the operation and maintenance server as the main body for executing the automatic software package upload method as an example for description.
[0033] Figure 1 A flowchart of an automatic software package upload method provided in an embodiment of this application is given. (Reference) Figure 1 The automatic upload method for this software package specifically includes:
[0034] S110. Obtain the software package to be uploaded based on the input software package storage path, and extract the software upload data from the software package. The upload data includes development data and metadata. The development data includes the development team identifier and team name, and the metadata includes the software name and software version.
[0035] In this embodiment, the system first automatically retrieves the software package to be uploaded based on the specified package storage path. The package path is typically provided by the developer or an automation tool. The package itself is the final product that the developer has completed and is ready to submit to the platform, such as an IPA file or an APK file. After retrieving the package, the system extracts the necessary upload data. The upload data includes development data and metadata. Development data includes information such as the development team identifier and team name, which helps the system identify which development team the uploaded application belongs to. This development data is defined by the developer when submitting the upload package to ensure it is correctly assigned to a specific team. Metadata includes basic software information such as the software name, version, and update logs. This information is part of the package and is intended to provide the target platform with basic identification and classification of the software. More specifically, taking the upload of an IPA file as an example, the system first receives the path to the IPA package to be uploaded, thereby reading the IPA package, parsing the profile file named Embeded.mobileprovision within the IPA package to obtain information such as the team ID and team name, and parsing the Info.plist file within the IPA package to obtain parameters such as the Bundle ID and IPA package version.
[0036] Optionally, the metadata in the software upload data extracted from the software package also includes an application identifier. After obtaining the software package to be uploaded and extracting the software upload data from the software package, the metadata also includes:
[0037] Based on the application identifier, a connection request to the target platform is constructed. The connection request is used to obtain the platform application identifier corresponding to the software package from the target platform, and the platform application identifier is added to the upload data.
[0038] For example, a connection request is constructed using an application identifier, the goal of which is to communicate with the target platform. The application identifier is a unique identifier for each application on the target platform. It is typically an identifier automatically generated by the platform for each application when the developer submits it, such as the App ID for iOS or the PackageName for Android. This application identifier allows the unique identity of the corresponding application on the target platform to be confirmed, and this identity is used to request relevant data from the platform. Specifically, a connection request is constructed using this identifier, usually based on an API interface. For example, the iOS App Store or Google Play Store provide developer APIs, allowing developers to automatically obtain information such as the application's status and platform identifier. The system creates a request format that conforms to the target platform's requirements based on the application identifier, including the API request URL, request header information, and necessary authentication information such as developer keys and OAuth tokens. Then, a connection request is sent to the target platform's server, requesting a query for application information related to the application identifier. When the target platform receives the request, it returns the platform application identifier for the application on the platform based on the application identifier. This identifier is a unique identifier used internally by the target platform to identify the application. It is typically assigned by the platform upon initial application submission and is directly related to the developer account and application content. For example, in the App Store, each application has a unique Bundle ID, while in Google Play, the application's Package Name is used as the platform identifier. The platform application identifier distinguishes different applications on the platform and is crucial information necessary for data exchange and operation between the system and the platform. Once the target platform's platform application identifier is successfully obtained, it is added to the previously extracted upload data. The upload data is a set of information including development data and metadata, such as the development team's identifier, team name, software name, and version number. Now, the platform application identifier is added to this data. This ensures that the upload data not only contains the developer's information but also meets the requirements of the target platform and is bound to the platform's application information. The step of adding the platform application identifier is implemented through data structure operations, such as adding it as a field to the upload data object or automatically populating this information when the upload package is generated. This step ensures that platform-level information is integrated into the upload data during the upload process, avoiding data loss or inconsistencies. Meanwhile, platform application identifiers can help target platforms quickly identify the source of applications, improving the efficiency and accuracy of the upload process.More specifically, taking the upload of an IPA file as an example, authentication is obtained by constructing an iTunes Connect request. After successful authentication, an iTunes Connectd lookupSoftwareForBundleId request is constructed to obtain the App's Store ID parameter.
[0039] S120. Obtain the publisher account used to upload the software package, query the publisher team identifiers corresponding to several publisher teams to which the publisher account belongs, and determine the matching status of the development team identifier and the publisher team identifier.
[0040] In this embodiment, the publisher account used for uploading the software package is automatically obtained. The publisher account refers to the developer's account on the target platform, such as an App Store Connect account or a Google Play Developer account. Through this publisher account, the system can query several publishing teams belonging to that account, each with a unique identifier. To ensure the legitimacy and correct attribution of the uploaded software package, the system needs to match the development team identifier with the publishing team identifier. Specifically, the system searches for multiple publishing teams under the publisher account and verifies whether any of them matches the current development team identifier, thus ensuring that the uploaded software package is published within the correct team framework and preventing mis-publishing or permission abuse. More specifically, taking the upload of an IPA file as an example, the provider mode of the iTMSTransporter command is used to obtain information on all teams with upload permissions for the publisher account, and the team ID obtained from the IPA package is used to determine whether the publisher account has permission to upload the IPA package.
[0041] Optionally, Figure 2 This is a flowchart illustrating the software package distribution account matching process provided in this application embodiment. For example... Figure 2 As shown, the steps for matching the distribution account of this software package specifically include S1201-S1202:
[0042] S1201. Based on the application identifier, query the publishing account corresponding to the development team identifier in the preset mapping table. If the corresponding publishing account exists in the mapping table, use the publishing account as the publisher account.
[0043] For example, based on the extracted software application identifier, the system performs a fast query in a pre-maintained mapping table. This mapping table pre-defines the correspondence between development team identifiers and publishing accounts, enabling precise location of the corresponding publisher account. The mapping table is typically stored in a database table or a high-performance cache structure, such as Redis or a memory cache, recording each development team identifier and one or more associated publishing account information, supporting fast retrieval and dynamic updates. This mapping mechanism effectively avoids the need to re-call the target platform interface to query the team-account association every time a software package is uploaded, thus significantly reducing the frequency of interface calls during the upload process, shortening pre-upload preparation time, and improving the automation and execution efficiency of the overall upload process. Furthermore, if the mapping table does not match, the system can automatically retrieve platform information and synchronously update the mapping table, ensuring the real-time performance and accuracy of the account matching mechanism. When a publishing account matching the extracted development team identifier is successfully found in the mapping table, that publishing account can be directly identified as the publisher account for this software package upload operation. By using a pre-defined mapping for rapid location, the overhead and response latency caused by frequent calls to the target platform's API to query account information, as in traditional methods, can be effectively avoided, thus reducing the overall system load. This method not only speeds up the upload process and improves execution efficiency but also ensures consistency and correctness between the publisher's identity and the development team to which the software package belongs. The rapid account selection achieved through caching or persistent mapping tables further enhances the smoothness, stability, and automation of the entire upload process.
[0044] S1202. If the mapping table does not contain a corresponding publishing account, query the team information corresponding to the account information in the mapping table on the target platform, update the mapping table based on the account information and the team information, and query the publishing account corresponding to the development team in the updated mapping table based on the application identifier.
[0045] For example, if no publishing account corresponding to the current development team identifier is found in the mapping table, the system will trigger a dynamic update mechanism. The system queries the target platform's mapping table for the team information corresponding to the account. By calling the API provided by the target platform, it queries in real-time the team information corresponding to each account in the currently known set of publishing accounts, such as the list of developer teams associated with each App Store Connect account. Based on the query results, the development team identifier is associated with the latest publishing account relationship and written to or updated in the mapping table to ensure the data in the mapping table remains up-to-date. After updating the mapping table, the system queries again based on the application identifier to locate the latest publishing account corresponding to the development team identifier and uses it as the publishing account for this upload. By dynamically maintaining and updating the mapping table, the system can adapt to changes in publishing accounts and team relationships, ensuring that even if the developer changes teams or updates account permissions, the automated upload process can still be completed smoothly, greatly enhancing the robustness and adaptability of the method.
[0046] Optionally, Figure 3 This is a flowchart illustrating the sorting of alternative publishing accounts provided in this application's embodiments. For example... Figure 3 As shown, the steps for sorting the backup release account specifically include S121-S123:
[0047] S121. Obtain the periodic upload count, the number of development teams to which the backup account belongs, and the upload success rate.
[0048] For example, for all available backup publishing accounts, several operational metrics are collected, including the number of uploads per cycle, the number of development teams associated with the account, and the upload success rate. The number of uploads per cycle counts the number of times each backup account successfully performs uploads within a recent preset period, such as 7 days or 30 days. This reflects the account's activity level and upload stability. The number of development teams associated with each backup account indicates the number of development teams currently linked to it. The more teams an publishing account is associated with, the broader its permission coverage and the better its adaptability. The upload success rate is calculated based on historical upload records, showing the percentage of successful uploads for each backup account. Accounts with high upload success rates indicate stable authentication, reasonable permission configuration, and lower upload risk. By collecting these metrics, the usability and performance of each backup account can be comprehensively evaluated.
[0049] S122. Calculate the priority score of the backup account according to the number of uploads per period, the number of development teams to which it belongs, and the upload success rate, based on a preset weight ratio.
[0050] For example, after acquiring the data for each indicator, a weighted calculation is performed on each indicator according to pre-set weighting rules to generate a priority score for each backup account. For instance, the weight of the number of uploads per period can be set to 40%, the weight of the number of development teams to which the account belongs to to be assigned to to be 30%, and the weight of the upload success rate to be 30%. By setting weights, the influence of different factors on priority can be adjusted according to actual business needs. The higher the final priority score, the better the overall performance of the account, and the higher its priority. This step enables a quantitative evaluation of multiple backup accounts, providing a clear basis for subsequent account selection.
[0051] S123. Sort the backup accounts according to their priority scores.
[0052] For example, based on the calculated priority scores, all backup accounts are sorted according to their scores to generate a priority list of backup accounts. During the actual upload process, if the primary publishing account becomes unavailable or the upload fails, the backup account with the higher score can be tried first, based on this priority list, thereby maximizing the success rate and stability of the upload. This intelligent sorting mechanism for backup accounts effectively avoids the risk of arbitrarily switching accounts after an upload failure, improving the continuity and reliability of the overall upload process.
[0053] Optionally, Figure 4 This is a flowchart illustrating the reading of the backup publishing account provided in this application embodiment. For example... Figure 4 As shown, the steps for reading the backup publishing account specifically include S124-S125:
[0054] S124. If there is no matching development team identifier among the several release team identifiers, read the backup accounts sequentially from the preset backup account list, query the backup team identifier corresponding to the backup account, and determine the matching status of the backup team identifier and the development team identifier.
[0055] For example, if the current release team identifier does not match the development team identifier extracted from the package to be uploaded during the normal process, it means that the current release account cannot directly complete the upload. At this point, the system enters the backup account matching process, reading backup accounts one by one from a pre-set backup account list. For each read backup account, the system queries the backup team identifier corresponding to its backup team, i.e., the development team identifier to which the account is registered on the target platform. The queried backup team identifier is compared with the development team identifier in the package to determine if they match. This process can be implemented automatically through a loop of reading and comparison, avoiding manual intervention and improving matching efficiency.
[0056] S125. If there is a matching development team identifier among the several backup team identifiers, an upload package is generated based on the uploaded data and the software package, and the upload package is uploaded to the target platform using the backup account with the development team corresponding to the development team identifier as the subject.
[0057] For example, when a backup team identifier of a backup account successfully matches the development team identifier of the software package to be uploaded, the backup account selection is complete. Based on the previously extracted upload data, including development data, metadata, platform application identifiers, and the software package to be uploaded, an upload package is generated. Using the successfully matched backup account, with the development team corresponding to the development team identifier as the upload subject, the upload package is automatically uploaded to the specified target platform. Through this mechanism, even if the original release account becomes abnormal, the upload operation can still be successfully completed based on the backup account, thereby ensuring the stability and reliability of the software package release process and greatly improving disaster recovery capabilities and automation levels.
[0058] S130. If there is a matching development team identifier among the several publishing team identifiers, an upload package is generated based on the upload data and the software package, and the upload package is uploaded to the target platform using the publisher account with the development team corresponding to the development team identifier as the subject.
[0059] In this embodiment, once a publishing team identifier matching the development team identifier is confirmed, the system begins generating an upload package. The upload package generation process involves the system constructing an upload format file suitable for the target platform based on the upload data extracted from the software package, combined with metadata and development data provided by the developer. This upload package undergoes necessary data validation and formatting to ensure no data inconsistencies or format errors occur during the upload process. After generating the upload package, the system uses the publisher account to upload the package to the target platform under the matched development team identity. During the upload process, the development team corresponding to the development team identifier is used as the subject, ensuring the software package is uploaded to the correct account and publishing channel. Automated uploading not only reduces the tedium of manual operations but also ensures the efficiency and accuracy of the upload process through preset rules, templates, and automated API calls. More specifically, taking the upload of an IPA file as an example, once it is confirmed that the publisher account has upload permissions, the metadata.xml file required by the IPA package is constructed by parsing the data from the IPA package, and a .itmsp folder is created, containing the IPA package and the metadata.xml file. The IPA package is then uploaded to the Apple Store using the upload mode of the iTMSTransporter command. The upload progress will be output during the process of uploading the IPA to the Apple Store.
[0060] Optionally, Figure 5 This is a flowchart of the upload packet verification provided in an embodiment of this application. For example... Figure 5 As shown, the steps for reading the backup publishing account specifically include S1301-S1302:
[0061] S1301. Check the signature, file format, and size of the software package, and output the software package check result; perform format verification on the uploaded data, and output the uploaded data check result.
[0062] For example, before uploading the software package, a comprehensive pre-check is performed on the uploaded content. This pre-check includes package verification and upload data verification. Package verification involves performing basic checks on the software package to be uploaded, including but not limited to checking the validity of the package's digital signature to confirm the software's trustworthy origin; verifying that the package's file format conforms to the requirements of the target platform, such as the App Store or Google Play, for example, whether it is a valid IPA or APK format; and verifying that the package's file size is within the platform's allowed range to avoid upload failure due to excessively large files. Upload data verification involves simultaneously checking the format of the extracted upload data, i.e., development data, metadata, etc., to ensure that data fields are complete and formatted correctly; and that necessary fields such as software name, version number, and development team identifier are not missing and that the content is reasonable. The package verification results and upload data verification results are then output based on the above checks.
[0063] S1302. If both the package inspection result and the uploaded data inspection result pass, the publisher account uploads the package to the target platform using the development team corresponding to the development team identifier.
[0064] For example, after confirming that both of the above checks pass, the formal upload operation is performed. An upload package is generated based on the previously extracted upload data and software package; the selected publisher account is used, with the development team corresponding to the development team identifier as the upload subject; the upload package is securely and compliantly uploaded to the target platform. By adding a verification mechanism before uploading, upload failures, platform rejections, or security incidents due to abnormal software packages or data errors can be effectively prevented, further improving the stability and success rate of the upload process. More specifically, taking the upload of an IPA file as an example, the verify mode of the iTMSTransporter command is used to verify whether the IPA package can be uploaded to the Apple Store. If there is a problem, the verification result is given. The verification step requires the built .itmsp folder.
[0065] Optionally, after uploading the package to the target platform using the publisher account with the development team corresponding to the development team identifier as the subject, the method further includes:
[0066] If the upload package fails to be uploaded to the target platform, the upload data is configured on the target platform, and the software package is uploaded to the target platform using the publisher account with the development team corresponding to the development team identifier as the subject.
[0067] For example, to improve the reliability of software package uploads, this embodiment also provides a backup upload mechanism for failed uploads. This mechanism automatically switches upload tools and re-uploads after an initial upload failure. Specifically, if the upload is successful, the software package is successfully submitted to the target platform. If the upload fails, the system triggers a backup upload process, invoking a preset backup upload tool based on the software package and upload data. Using the publisher account and development team identifier as the main components, the software package itself is directly uploaded to the target platform via the backup upload tool. After the backup upload is completed, the execution result is monitored. If the backup upload is successful, the subsequent release process continues. If the backup upload still fails, an exception handling mechanism is triggered, such as generating an error report or manual intervention. Through this mechanism, when the complete upload package fails, a quick revert to the backup solution of directly uploading the software package itself can be achieved, avoiding failures caused by complex upload package structure requirements, thereby improving the stability and success rate of the software release process.
[0068] After the upload process is completed, the tool receives and displays upload result information, including upload status, return code, and failure reason, so that developers can understand the upload status in a timely manner. The tool also cleans up cache files automatically generated during the upload process, including but not limited to intermediate upload package files, temporary metadata files, and log files, to free up storage space and prevent sensitive data leakage. The cleanup of cache files can be completed through preset directory scanning and automatic deletion strategies to ensure that the upload tool maintains a clean environment and stable performance during multiple uses.
[0069] Based on the above embodiments, Figure 6 This is a schematic diagram of an automatic software package uploading device provided in an embodiment of this application. (Reference) Figure 6 The automatic software package upload device provided in this embodiment specifically includes: a software package parsing module 21, a publisher verification module 22, and an upload package publishing module 23.
[0070] Among them, the package parsing module 21 is configured to obtain the package to be uploaded based on the passed package storage path, and extract the software upload data from the package. The upload data includes development data and metadata. The development data includes the development team identifier and team name, and the metadata includes the software name and software version.
[0071] The publisher verification module 22 is configured to obtain the publisher account used to upload the software package, query the publisher team identifiers corresponding to several publisher teams to which the publisher account belongs, and determine the matching status of the development team identifier and the publisher team identifier.
[0072] The upload package publishing module 23 is configured to generate an upload package based on the upload data and the software package when there is a match between the publishing team identifier and the development team identifier among the several publishing team identifiers, and to upload the upload package to the target platform using the publisher account with the development team corresponding to the development team identifier as the subject.
[0073] Based on the above embodiments, the upload package publishing module 23 includes: a package checking unit, configured to check the signature, file format and size of the package, and output the package checking result of the package; to perform format verification on the uploaded data, and output the upload data checking result; and an upload package publishing unit, configured to, when both the package checking result and the upload data checking result pass, use the publisher account to upload the upload package to the target platform with the development team corresponding to the development team identifier as the subject.
[0074] Based on the above embodiments, the automatic software package upload device further includes: an application identifier acquisition module, configured to construct a connection request for the target platform based on the application identifier, obtain the platform application identifier corresponding to the software package from the target platform using the connection request, and add the platform application identifier to the upload data.
[0075] Based on the above embodiments, the publisher verification module 22 includes: a publisher account matching unit, configured to query the publisher account corresponding to the development team identifier in a preset mapping table based on the application identifier, and if the mapping table contains a corresponding publisher account, use the publisher account as the publisher account; and a mapping table updating unit, configured to query the team information corresponding to the account information in the mapping table on the target platform if the mapping table does not contain a corresponding publisher account, update the mapping table based on the account information and the team information, and query the publisher account corresponding to the development team in the updated mapping table based on the application identifier.
[0076] Based on the above embodiments, the automatic software package upload device further includes: a backup account reading module, configured to sequentially read backup accounts from a preset backup account list, query the backup team identifier corresponding to the backup account, and determine the matching status between the backup team identifier and the development team identifier when no matching development team identifier exists among the several release team identifiers; and a backup account upload module, configured to generate an upload package based on the upload data and the software package when a matching development team identifier exists among the several backup team identifiers, and upload the upload package to the target platform using the backup account with the development team corresponding to the development team identifier as the main body.
[0077] Based on the above embodiments, the automatic software package upload device further includes: a backup account information extraction module, configured to obtain the periodic upload count, the number of development teams to which the backup account belongs, and the upload success rate; a backup account priority module, configured to calculate the priority score of the backup account according to a preset weight ratio based on the periodic upload count, the number of development teams to which the backup account belongs, and the upload success rate; and a backup account sorting module, configured to sort the backup accounts according to their priority scores.
[0078] Based on the above embodiments, the automatic software package upload device further includes: a backup upload tool module, configured to, in the event that the upload package fails to be uploaded to the target platform, configure the upload data on the target platform and use the publisher account with the development team corresponding to the development team identifier as the subject to upload the software package to the target platform.
[0079] The automatic software package upload device provided in this application only requires the storage path of the software package to be passed in. The system can automatically parse the software package content, extract the required development information and metadata information, and complete the upload configuration and upload operation, eliminating the need for manually entering tedious parameters and greatly improving upload efficiency. In scenarios where a publishing account is associated with the permissions of multiple development teams, the system can automatically match the corresponding publishing team based on the development team identifier in the software package without manual intervention, ensuring the correctness and consistency of the upload. A simple authentication method, such as a dedicated password or simplified API authentication, is adopted to avoid directly exposing the main account password or complex key management processes, balancing security and convenience, and adapting to the authentication requirements of various target platforms. When the initial upload fails, the system can automatically switch to a backup upload tool or backup authentication method to retry the upload, effectively improving the success rate of software package uploads on different types of platforms and enhancing the stability and fault tolerance of the upload process.
[0080] The automatic software package upload device provided in this application embodiment can be used to execute the automatic software package upload method provided in the above embodiment, and has corresponding functions and beneficial effects.
[0081] Figure 7 This is a schematic diagram of the structure of an automatic software package upload device provided in an embodiment of this application, with reference to... Figure 7 The automatic software upload device includes a processor 31, a memory 32, a communication device 33, an input device 34, and an output device 35. The number of processors 31 and the number of memories 32 in the automatic software upload device can be one or more. The processor 31, memory 32, communication device 33, input device 34, and output device 35 of the automatic software upload device can be connected via a bus or other means.
[0082] The memory 32, as a computer-readable storage medium, can be used to store software programs, computer-executable programs, and modules, such as program instructions / modules corresponding to the automatic software package upload method in any embodiment of this application (e.g., the software package parsing module 21, the publisher verification module 22, and the upload package publishing module 23 in the automatic software package upload device). The memory 32 may primarily include a program storage area and a data storage area. The program storage area may store the operating system and at least one application program required for a function; the data storage area may store data created based on the use of the device, etc. Furthermore, the memory 32 may include high-speed random access memory and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other non-volatile solid-state storage device. In some instances, the memory may further include memory remotely located relative to the processor, and these remote memories can be connected to the device via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0083] The communication device 33 is used for data transmission.
[0084] The processor 31 executes various functional applications and data processing of the device by running software programs, instructions and modules stored in the memory 32, thereby realizing the above-mentioned automatic software package upload method.
[0085] Input device 34 can be used to receive input digital or character information, and to generate key signal inputs related to user settings and function control of the device. Output device 35 may include display devices such as a display screen.
[0086] The software package automatic upload device provided above can be used to execute the software package automatic upload method provided in the above embodiments, and has corresponding functions and beneficial effects.
[0087] This application embodiment also provides a storage medium containing computer-executable instructions. When executed by a computer processor, the computer-executable instructions are used to execute an automatic software package upload method. The automatic software package upload method includes: obtaining a software package to be uploaded based on an input software package storage path; extracting upload data of the software from the software package, the upload data including development data and metadata, the development data including a development team identifier and team name, and the metadata including a software name and software version; obtaining a publisher account used to upload the software package; querying the publisher team identifiers corresponding to several publishing teams to which the publisher account belongs; determining the matching situation between the development team identifier and the publishing team identifier; if there is a match among the several publishing team identifiers with the development team identifier, and the publishing team and the development team match, generating an upload package based on the upload data and the software package; and uploading the upload package to a target platform using the publisher account with the development team corresponding to the development team identifier as the main entity.
[0088] Storage medium – any type of memory device or storage apparatus. The term “storage medium” is intended to include: mounting media, such as CD-ROMs, floppy disks, or magnetic tape devices; computer system memory or random access memory, such as DRAM, DDR RAM, SRAM, EDO RAM, Rambus RAM, etc.; non-volatile memory, such as flash memory, magnetic media (e.g., hard disks or optical storage); registers or other similar types of memory elements, etc. Storage media may also include other types of memory or combinations thereof. Furthermore, storage media may reside in a first computer system in which a program is executed, or may reside in a different second computer system connected to the first computer system via a network (such as the Internet). The second computer system can provide program instructions to the first computer for execution. The term “storage medium” can include two or more storage media residing in different locations (e.g., in different computer systems connected via a network). Storage media may store program instructions (e.g., specifically implemented as a computer program) executable by one or more processors.
[0089] Of course, the computer-executable instructions provided in the embodiments of this application are not limited to the above-mentioned automatic software package upload method, but can also perform related operations in the automatic software package upload method provided in any embodiment of this application.
[0090] The automatic software package upload device, storage medium, and automatic software package upload equipment provided in the above embodiments can execute the automatic software package upload method provided in any embodiment of this application. For technical details not described in detail in the above embodiments, please refer to the automatic software package upload method provided in any embodiment of this application.
[0091] The above description is merely a preferred embodiment and the technical principles employed in this application. This application is not limited to the specific embodiments described herein, and various obvious changes, readjustments, and substitutions that can be made by those skilled in the art will not depart from the scope of protection of this application. Therefore, although this application has been described in detail through the above embodiments, this application is not limited to the above embodiments, and may include many other equivalent embodiments without departing from the concept of this application. The scope of this application is determined by the scope of the claims.
Claims
1. A method for automatically uploading software packages, characterized in that, include: The software package to be uploaded is obtained based on the input software package storage path. The software upload data is extracted from the software package. The upload data includes development data and metadata. The development data includes the development team identifier and team name. The metadata includes the software name and software version. Obtain the publisher account used to upload the software package, query the publisher team identifiers corresponding to several publisher teams to which the publisher account belongs, and determine the matching status of the development team identifier and the publisher team identifier; If a match is found among the several publishing team identifiers that is the development team identifier, an upload package is generated based on the uploaded data and the software package, and the upload package is uploaded to the target platform using the publisher account with the development team corresponding to the development team identifier as the subject. The metadata also includes an application identifier. After obtaining the software package to be uploaded and extracting the software upload data from the software package, the process further includes: Based on the application identifier, a connection request to the target platform is constructed. The connection request is used to obtain the platform application identifier corresponding to the software package from the target platform. The platform application identifier is then added to the uploaded data. The step of obtaining the publisher account used to upload the software package includes: Based on the application identifier, the corresponding publishing account of the development team identifier is queried in the preset mapping table. If the corresponding publishing account exists in the mapping table, the publishing account is used as the publisher account. If no corresponding publishing account exists in the mapping table, the target platform queries the team information corresponding to the account information in the mapping table, updates the mapping table based on the account information and the team information, and queries the publishing account corresponding to the development team in the updated mapping table based on the application identifier.
2. The automatic software package upload method according to claim 1, characterized in that, The step of uploading the package to the target platform using the publisher account with the development team corresponding to the development team identifier as the subject includes: Check the signature, file format, and size of the software package, and output the software package check result; perform format validation on the uploaded data, and output the uploaded data check result; If both the package inspection result and the uploaded data inspection result pass, the publisher account uploads the package to the target platform using the development team corresponding to the development team identifier.
3. The automatic software package upload method according to claim 1, characterized in that, The method further includes: If no matching development team identifier is found among the aforementioned release team identifiers, the backup accounts are sequentially read from a preset backup account list, and the backup team identifiers corresponding to the backup accounts are queried to determine the matching status between the backup team identifiers and the development team identifiers. If a match is found among the backup team identifiers, an upload package is generated based on the uploaded data and the software package. The backup account then uploads the upload package to the target platform using the development team corresponding to the development team identifier as the main entity.
4. The automatic software package upload method according to claim 3, characterized in that, Before sequentially reading the backup accounts from the preset backup account list, the process also includes: Obtain the periodic upload count, the number of development teams to which the backup account belongs, and the upload success rate; The priority score of the backup account is calculated according to the number of uploads per cycle, the number of development teams to which it belongs, and the upload success rate, based on a preset weight ratio. The backup accounts are sorted according to their priority scores.
5. The automatic software package upload method according to claim 1, characterized in that, After the publisher account uploads the package to the target platform using the development team corresponding to the development team identifier, the process further includes: If the upload package fails to be uploaded to the target platform, the upload data is configured on the target platform, and the software package is uploaded to the target platform using the publisher account with the development team corresponding to the development team identifier as the subject.
6. An automatic software package upload device, characterized in that, include: The software package parsing module is used to obtain the software package to be uploaded based on the input software package storage path, and extract the software upload data from the software package. The upload data includes development data and metadata. The development data includes the development team identifier and team name, and the metadata includes the software name and software version. The publisher verification module is used to obtain the publisher account used to upload the software package, query the publisher team identifiers corresponding to several publisher teams to which the publisher account belongs, and determine the matching status of the development team identifier and the publisher team identifier. The upload package publishing module is used to generate an upload package based on the upload data and the software package when there is a matching development team identifier among several publishing team identifiers, and to upload the upload package to the target platform using the publisher account with the development team corresponding to the development team identifier as the subject. The metadata also includes an application identifier, and the automatic software package upload device further includes: an application identifier acquisition module, configured to construct a connection request to the target platform based on the application identifier, obtain the platform application identifier corresponding to the software package from the target platform using the connection request, and add the platform application identifier to the upload data; The publisher verification module includes: a publisher account matching unit, configured to query the publisher account corresponding to the development team identifier in a preset mapping table based on the application identifier, and if a corresponding publisher account exists in the mapping table, use the publisher account as the publisher account; and a mapping table updating unit, configured to query the team information corresponding to the account information in the mapping table on the target platform if no corresponding publisher account exists in the mapping table, update the mapping table based on the account information and the team information, and query the publisher account corresponding to the development team in the updated mapping table based on the application identifier.
7. A software package automatic upload device, characterized in that, include: One or more processors; A memory that stores one or more programs, which, when executed by one or more processors, cause the one or more processors to implement the automatic software package upload method as described in any one of claims 1-5.
8. A storage medium containing computer-executable instructions, characterized in that, The computer-executable instructions, when executed by a computer processor, are used to perform the automatic software package upload method as described in any one of claims 1-5.
Citation Information
Patent Citations
IOS APP automatic publishing method, macOS server and system
CN115065670A