CN110647349B - Method for realizing continuous delivery of iOS APP - Google Patents

Method for realizing continuous delivery of iOS APP Download PDF

Info

Publication number
CN110647349B
CN110647349B CN201911186310.6A CN201911186310A CN110647349B CN 110647349 B CN110647349 B CN 110647349B CN 201911186310 A CN201911186310 A CN 201911186310A CN 110647349 B CN110647349 B CN 110647349B
Authority
CN
China
Prior art keywords
project
fastlane
script
gitlab
ios
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911186310.6A
Other languages
Chinese (zh)
Other versions
CN110647349A (en
Inventor
谢智
谢乾
王吉
费俊杰
张龙庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JIANGSU ZHUOYI INFORMATION TECHNOLOGY Co.,Ltd.
KUNSHAN BYOSOFT ELECTRONIC TECHNOLOGY Co.,Ltd.
NANJING BYOSOFT Co.,Ltd.
Original Assignee
Jiangsu Zhuoyi Information Technology Co ltd
Kunshan Byosoft Electronic Technology Co ltd
Nanjing Byosoft Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Zhuoyi Information Technology Co ltd, Kunshan Byosoft Electronic Technology Co ltd, Nanjing Byosoft Co ltd filed Critical Jiangsu Zhuoyi Information Technology Co ltd
Priority to CN201911186310.6A priority Critical patent/CN110647349B/en
Publication of CN110647349A publication Critical patent/CN110647349A/en
Application granted granted Critical
Publication of CN110647349B publication Critical patent/CN110647349B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

The invention discloses a method for realizing continuous delivery of an iOS APP, and belongs to the technical field of computer APPs. Exporting the iOS installation package through the fastlane script; platform delivery is realized through a swift language script, and a packaged packet is uploaded; registering GitLab Runner, and binding the started Runner and GitLab CI; and configuring a gitlab-ci.yml file in a project root directory, so that when a developer prints a tag version of the project, the project automatically renews a pod library of the project, and then triggering the previous operation of exporting the iOS installation package by fastlane. Tag version maintenance and iOS APP continuous delivery in a plurality of project development processes are combined together; the complicated flow and the release flow of ordinary iOS packaging are greatly liberated, and the error of packaging and releasing the middle package version of a plurality of items of personnel is reduced.

Description

Method for realizing continuous delivery of iOS APP
Technical Field
The invention belongs to the technical field of computer APP, and particularly relates to a method for realizing continuous delivery of an iOS APP.
Background
The conventional iOS packaging method is now manual compilation and manual packaging by the Xcode tool because iOS packaging is relatively time consuming, where each step requires a developer to operate, and no intermediate developers can do anything else. After the Xcode gets out the package, the developer needs to manually upload the package to a third-party platform for publishing and configuring the related information. Therefore, it can be seen that the conventional packing manner is complicated in process, and careless mistakes are easily caused when relevant configuration is performed on the exported packages, which requires a developer to perform operations step by step, which results in low working efficiency. If it is straightforward for a developer to nightmare when items need to be packaged frequently.
Disclosure of Invention
Aiming at the problems in the prior art, the invention aims to provide a method for realizing continuous delivery of iOS APP, which can realize convenient and quick packaging, improve the efficiency and reduce the error rate.
In order to achieve the purpose, the technical scheme adopted by the invention is as follows:
a method for realizing continuous delivery of iOS APP comprises the steps of exporting an iOS installation package through fastlane, and then realizing platform delivery through a swift language script; registering GitLab Runner, and binding the started Runner and GitLab CI; and configuring a gitlab-ci.yml file in a project root directory, so that when a developer prints a tag version of the project, the project can automatically renew a pod library of the project, then triggering the previous operation of exporting an iOS installation package by fastlane, and combining tag version maintenance and iOS APP continuous delivery in the development process. The method specifically comprises the following steps:
step S1: registering a GitLab Runner for a local project, binding the started Runner with a GitLab CI on a corresponding remote Gitlab project, generating a Gitlab-ci.yml file in a project root directory, and waiting for configuration;
step S2: packaging local projects through a fastlane script and exporting an iOS installation package;
step S3: uploading the package printed by the fastlane to a specified external platform through the swift script;
step S4: yml file in step S1 is configured to execute fastlane script in step S2;
step S5: the user marks a specified tag version on the gitlab remote item, thereby automatically triggering the fastlane script in step S2 and the swift script in step S3.
According to the method for realizing continuous delivery of the iOS APP, multiple project ends can be copied in the operation of leading out the iOS installation package by fastlane before triggering, and the multiple projects are subjected to tag printing so as to realize continuous delivery in batches.
According to the method for realizing continuous delivery of the iOS APP, the package printed by the fastlane is uploaded and simultaneously accessed into a third party notification system, and the uploading is completed and then the related personnel are notified.
According to the method for realizing continuous delivery of the iOS APP, the third-party notification system is a nailing robot or a mail.
According to the method for realizing continuous delivery of the iOS APP, a packing and exporting command and a swift script command are configured in a fastlane script, and the script in the swift is continuously executed after the fastlane packing and exporting script is executed.
According to the method for realizing continuous delivery of the iOS APP, files required by a user can be uploaded in a swift script and appointed to an external platform; the files required by the user are version files of the project or files for triggering the version updating detection function in the APP, so that the APP of the old user is updated to prompt operation.
The method for realizing continuous delivery of iOS APP is configured in a gitlab-ci.yml file as follows: when a tag operation is performed on a specified branch, a fastlane script operation is triggered.
According to the method for realizing continuous delivery of the iOS APP, when a tag version of a specified item is printed, a user uses visual SourceTree packaging, or uses SVN to package, or uses a command line, or directly operates on a gitlab server manually.
The method for realizing continuous delivery of the iOS APP automatically packages and uploads the iOS APP to an appointed external download platform, integrates a download address of the appointed external download platform into a third-party notification system through a swift script, generates a two-dimensional code and notifies related personnel of downloading; the third party notification system is a nailing robot or an email, and the external download platform is dandelion or fir.
Has the advantages that: compared with the prior art, the invention has the advantages that:
(1) compared with the traditional Xcode packing method (the Xcode is manually compiled firstly, then manually packed and exported, and then uploaded to a third-party platform), the integrated automatic packing method has the advantages that the system configuration is adopted as an input parameter, the whole-process automatic packing mode is adopted, the packing can be conveniently and rapidly carried out, the efficiency is improved, and the error rate is reduced.
(2) The invention combines tag version maintenance and iOS APP continuous delivery in the development process of a plurality of projects, greatly liberates the complicated packaging and releasing process of the ordinary iOS, reduces the error of packaging and releasing the tundish versions of a plurality of projects of personnel, and greatly improves the working efficiency.
Drawings
FIG. 1 is a flow chart of the main steps of the present invention.
Detailed Description
In order to make the aforementioned objects, features and advantages of the present invention comprehensible, embodiments accompanied with examples are described in detail below.
The noun explains:
and (3) continuous delivery: (Continuous delivery, abbreviated as CD) is a software engineering technique, which completes the production process of software products in a short period to ensure that the software can be stably and continuously maintained in a state of being released at any time. His goal is to make the construction, testing, and release of software faster and more frequent. This way, the cost and time of software development can be reduced, and the risk is reduced.
gitlab: the web service is an open source project for a warehouse management system, uses Git as a code management tool and is built on the basis of Git.
gitlab-ci: i.e., gitlab continuous integration, means continuous integration. For managing the build state of each project.
GitLab Runner: for performing the build task.
Fastlane: fastway is a set of automation tools written by Ruby, aiming at simplifying the deployment process of Android and iOS and automating the workflow. It can simplify some tedious, repetitive work like screenshots, code signing and publishing apps.
Packaging APP: and compiling and outputting the code into an installable apk file.
Example 1
As shown in fig. 1, the technical solution of the method for automatic packaging and releasing of APP of the present invention is as follows:
a method for realizing continuous delivery of iOS APP comprises the following steps:
step S1: firstly installing GitLab Runner in the local environment, and firstly operating a command at a Mac terminal: curl-Lhttps:// packaging. gitlab. com/install/retrieval/runner/gitlab/runner. rpm. sh | sudo bash, then execute the command at the Mac terminal: sudo yum install gitlab-runner.
Step S2: and then registering GitLab Runner for the local project, binding the started Runner with GitLab CI on the corresponding remote Gitlab project, generating a Gitlab-ci.yml file in a project root directory, and waiting for configuration. The registration specifically comprises the following operations:
(1) opening a project page in the GitLab, and finding Runners in the project setting, wherein the specific path is setttings-CI/CD-Runners-right side expansion button-Setup a specific Runner menu;
(2) running a gitlab-runner-register at the terminal;
(3) inputting CI URL (specific the following URL along the Runner setup), and returning;
(4) inputting Token (Use the following registration Token setting setup: the corresponding Token behind it), and returning;
(5) inputting the name of Runner (unimportant, can input and make a mark), and returning;
(6) if a tag mark is input, returning; (note: because this embodiment uses the native machine as the service address, here tag thousands of things input, otherwise the following operation is always blocked, the corresponding server can not be found, default to Docker, go back directly.)
(7) The type of Runner is selected, input Shell, enter.
Step S3: realizing automatic packaging of local projects through fastlane scripts; configuring an automatic packing and execution swift script command in the fastlane script, and continuing to execute the script in the swift after the execution of the automatic script packing of the fastlane is finished;
step S4: uploading a package printed by fastlane or a file required by a user to a third-party platform through a swift script, simultaneously accessing a third-party notification system, such as a nail robot, and notifying related personnel after uploading is completed; the file required by the user can be a version file of a project, or a version updating detection function in the APP can be triggered, so that the APP of an old user can perform updating prompt operation;
step S5: yml file in S2 is configured to execute fastlane script in S3; yml document is configured as follows: when tag operation is carried out on the appointed branch, fastlane automatic packaging operation is triggered;
step S6: the user marks a specified tag version on the gitlab remote item, so that a fastlane script in the step S3 and a swift script in the step S4 are automatically triggered; note that, here, the user can make multiple corresponding tag versions for multiple items at the same time, thereby achieving the purpose of batch continuous delivery. The tag version is printed, and a user can use visual SourceTree or SVN to package, or use a command line, or directly operate manually on a gitlab server;
step S7: after the package is automatically packaged and uploaded to a third party, the download address of the third party platform is integrated into a third party notification system, namely a nail robot, through the swift script, a two-dimensional code is generated, and relevant personnel are notified to download the two-dimensional code.
Compared with the traditional Xcode packing method (the Xcode is manually compiled firstly, then manually packed and exported, and then transmitted to an externally specified download platform), the packing mode of the invention adopts the mode that the system is configured as input parameters and the whole-process automatic packing is adopted, thereby being capable of conveniently and rapidly packing, improving the efficiency and reducing the error rate.
It should be noted that all of the features disclosed in this specification, or all of the steps in any method or process so disclosed, may be combined in any combination, except combinations where mutually exclusive features and/or steps are present.
Although the present invention has been described in detail with reference to the foregoing embodiments, it will be apparent to those skilled in the art that changes may be made in the embodiments and/or equivalents thereof without departing from the spirit and scope of the invention as defined in the appended claims. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims (5)

1. A method for realizing continuous delivery of iOS APP is characterized in that an iOS installation package is exported through fastlane, and then platform delivery is realized through swift language scripts; registering GitLab Runner, and binding the started Runner and GitLab CI; configuring a gitlab-ci.yml file in a project root directory, so that a project can automatically renew a pod library of the project when a developer stamps the tag, then triggering the previous fastlane export iOS installation package operation, and combining tag version maintenance and iOS APP continuous delivery in the development process; the method specifically comprises the following steps:
step S1: registering a GitLab Runner for a local project, binding the started Runner with a GitLab CI on a corresponding remote Gitlab project, generating a Gitlab-ci.yml file in a project root directory, and waiting for configuration;
step S2: local project packaging is realized through the fastlane script, and an iOS installation package is exported; configuring a packaging and exporting command and executing a swift script command in the fastlane script, and continuing to execute the script in the swift after the fastlane script is completely executed;
step S3: uploading files required by a user and a package printed by fastlane to a specified external platform through a swift script; the file required by the user is a version file of a project or a file triggering a version updating detection function in the APP;
step S4: yml file in step S1 is configured to execute fastlane script in step S2; yml document is configured as follows: triggering the fastlane script operation when the tag operation is carried out on the appointed branch;
step S5: the user marks a specified tag version on the gitlab remote item, so that a fastlane script in the step S2 and a swift script in the step S3 are automatically triggered; copying a plurality of project ends in the operation of the fastlane export iOS installation package before triggering, and realizing batch continuous delivery of a plurality of projects by marking a plurality of corresponding tags.
2. The method for realizing continuous iOS APP delivery according to claim 1, wherein the package printed by fastlane is uploaded and simultaneously accessed to a third party notification system, and after the uploading is completed, the relevant personnel are notified.
3. The method for achieving iOS APP continuous delivery according to claim 2, characterized in that the third party notification system is a stapling robot or a mail.
4. The method for realizing continuous iOS APP delivery according to claim 1, wherein when a tag version of a specified project is typed, a user uses visual SourceTree packaging, or SVN packaging, or command line, or manual operation directly on a gitlab server.
5. The method for realizing continuous iOS APP delivery according to claim 1, wherein after the package is automatically uploaded to the designated external download platform, the download address of the designated external download platform is integrated into a third party notification system through a swift script, a two-dimensional code is generated, and relevant personnel are notified to download the two-dimensional code; the third party notification system is a nailing robot or an email, and the external download platform is dandelion or fir.
CN201911186310.6A 2019-11-28 2019-11-28 Method for realizing continuous delivery of iOS APP Active CN110647349B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911186310.6A CN110647349B (en) 2019-11-28 2019-11-28 Method for realizing continuous delivery of iOS APP

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911186310.6A CN110647349B (en) 2019-11-28 2019-11-28 Method for realizing continuous delivery of iOS APP

Publications (2)

Publication Number Publication Date
CN110647349A CN110647349A (en) 2020-01-03
CN110647349B true CN110647349B (en) 2020-05-29

Family

ID=69014669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911186310.6A Active CN110647349B (en) 2019-11-28 2019-11-28 Method for realizing continuous delivery of iOS APP

Country Status (1)

Country Link
CN (1) CN110647349B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115700465B (en) * 2022-11-09 2023-05-09 安超云软件有限公司 Mobile electronic equipment and application method thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739507A (en) * 2018-12-28 2019-05-10 睿驰达新能源汽车科技(北京)有限公司 A kind of code continuous integrating method and code continue delivery method

Also Published As

Publication number Publication date
CN110647349A (en) 2020-01-03

Similar Documents

Publication Publication Date Title
CN107577469B (en) software packaging and publishing management method
CN111142903B (en) Configuration file interactive updating method and device based on file comparison
CN106775723B (en) Android platform-based system firmware customization method and Android device
EP2245532B1 (en) Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using the platform
US10552140B2 (en) Automated identification of deployment data for distributing discrete software deliverables
US8056062B2 (en) Methods and systems for converting application code in turbine control systems
US20070011494A1 (en) System and method for building software package for embedded system
CN112799716B (en) Code management method and system
CN105468427A (en) Implementation method and system of automatic compilation and release
CN106484452B (en) unified configuration management method and device for software platform
CN110647349B (en) Method for realizing continuous delivery of iOS APP
CN103645888A (en) System and method for automatically building operation system
CN107544813B (en) Switching method and system for static library configuration
CN110659022B (en) Method for automatically calling Python script based on Java
CN114265595B (en) Cloud native application development and deployment system and method based on intelligent contracts
CN116225415A (en) Front-end engineering method and system
CN115390846A (en) Compiling construction method and device, electronic equipment and storage medium
CN113849181A (en) Cross compiling tool chain construction method and device, electronic equipment and storage medium
CN112241286A (en) Resource package configuration method and device and storage medium
US20190244151A1 (en) Just in time compilation (jit) for business process execution
CN111913720A (en) Program deployment method and device
JP2008225762A (en) Library management system
CN112882700B (en) IOS application program construction method and device, electronic equipment and storage medium
JP2012093979A (en) Osgi bundle and deployment package automatic creation system, automatic creation method and automatic creation tool
JP2009098963A (en) Automatic module generation system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 214205, 298, Xingye Road, Xinjie street, Wuxi, Jiangsu, Yixing

Co-patentee after: NANJING BYOSOFT Co.,Ltd.

Patentee after: JIANGSU ZHUOYI INFORMATION TECHNOLOGY Co.,Ltd.

Co-patentee after: KUNSHAN BYOSOFT ELECTRONIC TECHNOLOGY Co.,Ltd.

Address before: 210061 11/F, Block A, Chuangzhi Building, 17 Xinghuo Road, Nanjing High-tech Zone, Jiangsu Province

Co-patentee before: JIANGSU ZHUOYI INFORMATION TECHNOLOGY Co.,Ltd.

Patentee before: NANJING BYOSOFT Co.,Ltd.

Co-patentee before: KUNSHAN BYOSOFT ELECTRONIC TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address