CN110647349B - 一种实现iOS APP持续交付的方法 - Google Patents

一种实现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
English (en)
Other versions
CN110647349A (zh
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/zh
Publication of CN110647349A publication Critical patent/CN110647349A/zh
Application granted granted Critical
Publication of CN110647349B publication Critical patent/CN110647349B/zh
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种实现iOS APP持续交付的方法,属于计算机APP技术领域。通过fastlane脚本导出iOS安装包;通过swift语言脚本实现平台交付,并将打好的包上传;注册GitLab Runner,将启动的Runner和GitLab CI绑定;在项目根目录中配置.gitlab‑ci.yml文件,使项目在由开发人员打tag版本时会自动重新更新一遍项目的pod库,然后触发之前的fastlane导出iOS安装包操作。将多个项目开发过程中的tag版本维护和iOS APP持续交付结合在一起;大大解放了平常iOS打包的繁琐流程以及发布流程,并降低了人员多个项目打包和发布中包版本的出错性。

Description

一种实现iOS APP持续交付的方法
技术领域
本发明属于计算机APP技术领域,具体涉及一种实现iOS APP持续交付的方法。
背景技术
现在常规的iOS打包方法是通过Xcode工具进行人工手动编译和手动打包,因为iOS打包相对比较耗时,其中每一步都需要开发者来操作,中间开发者没法做别的事情。等Xcode将包打出来后,开发者还需要手动将包上传到第三方平台发布,并配置相关信息。所以可以看出,旧有的打包方式过程比较繁琐,且当对导出的包做相关配置时容易出现纰漏,需要开发者一步一步操作,这也就导致了工作效率的低下。如果当项目需要频繁打包的时候,那对于开发者来说简直就是噩梦。
发明内容
针对现有技术中存在的问题,本发明的目的在于提供一种实现iOS APP持续交付的方法,可以实现方便快速的进行打包,提高效率,减少出错率。
为了实现上述目的,本发明所采用的技术方案如下:
一种实现iOS APP持续交付的方法,通过fastlane导出iOS安装包,然后通过swift语言脚本实现平台交付;注册GitLab Runner,将启动的Runner和GitLab CI绑定;在项目根目录中配置.gitlab-ci.yml文件,使项目在由开发人员打tag版本时会自动重新更新一遍项目的pod库,然后触发之前的fastlane导出iOS安装包操作,将开发过程中的tag版本维护和iOS APP持续交付结合在一起。具体包括以下步骤:
步骤S1:给本地项目注册GitLab Runner,将启动的Runner和对应的远程gitlab项目上的GitLab CI绑定,在项目根目录中生成.gitlab-ci.yml文件,等待配置;
步骤S2:通过fastlane脚本实本地项目打包并导出iOS安装包;
步骤S3:通过swift脚本将fastlane所打的包进行上传到指定对外平台;
步骤S4:对步骤S1中的.gitlab-ci.yml文件进行配置,让其执行步骤S2中的fastlane脚本;
步骤S5:用户给gitlab远端项目打指定的tag版本,从而自动触发步骤S2中的fastlane脚本和步骤S3中的swift脚本。
所述的实现iOS APP持续交付的方法,触发之前的fastlane导出iOS安装包操作中可复制多个项目端,多个项目通过打tag从而实现批量持续交付。
所述实现iOS APP持续交付的方法,fastlane所打的包上传的同时接入第三方通知***,上传完成后来通知相关人员。
所述实现iOS APP持续交付的方法,所述第三方通知***为钉钉机器人或邮件。
所述实现iOS APP持续交付的方法,在fastlane脚本中配置打包和导出命令以及执行swift脚本命令,让其执行完fastlane的打包及导出脚本后,再继续执行swift中的脚本。
所述实现iOS APP持续交付的方法,在swift脚本中还可以将用户需要的文件进行上传指定对外平台;所述用户需要的文件为项目的版本文件,或触发APP中检测版本更新功能的文件,从而让老用户的APP进行更新提示操作。
所述实现iOS APP持续交付的方法,在.gitlab-ci.yml文件中配置如下:在指定的分支上进行tag操作时,触发fastlane脚本操作。
所述实现iOS APP持续交付的方法,打指定项目的tag版本时,用户使用可视化的SourceTree打包,或者使用SVN进行打包,或者用命令行,或者直接在gitlab服务器上手动操作。
所述实现iOS APP持续交付的方法,自动打包上传到指定对外下载平台后,通过swift脚本将指定对外下载平台的下载地址集成进入第三方通知***,生成二维码并通知相关人员下载;所述第三方通知***为钉钉机器人或邮件,对外下载平台为蒲公英或fir。
有益效果:与现有的技术相比,本发明的优点包括:
(1)本发明通过gitlab ci以及调用多脚本语言实现一体化自动打包,与传统的Xcode打包方法(通过Xcode先进行手动编译,然后手动打包并导出,再传到第三方平台上)相比,本发明打包方式采用***配置为输入参数,全程自动化打包的方式,可以方便快速的进行打包,提高效率,减少出错率。
(2)本发明将多个项目开发过程中的tag版本维护和iOS APP持续交付结合在了一块,大大解放了平常iOS打包的繁琐流程以及发布流程,并降低了人员多个项目打包和发布中包版本的出错性,从而大幅度提高工作效率。
附图说明
图1为本发明的主要步骤流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合具体实施例对本发明的具体实施方式做详细的说明。
名词解释:
持续交付:(Continuous delivery,缩写为CD),是一种软件工程手法,让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以发布的状况。他的目标在于让软件的构建、测试与发布变得更快以及更频繁。这种方式可以减少软件开发的成本与时间,减少风险。
gitlab:是一个用于仓库管理***的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
gitlab-ci:即是gitlab continuous integration,意思是持续集成。用来管理各个项目的构建状态。
GitLab Runner:用来执行构建任务的。
Fastlane:Fastlane是一套使用Ruby写的自动化工具集,旨在简化Android和iOS的部署过程,自动化工作流。它可以简化一些乏味、单调、重复的工作,像截图、代码签名以及发布App。
打包APP:将代码编译输出为可安装的apk文件。
实施例1
如图1所示,本发明的APP自动化打包发布的方法技术方案如下:
一种实现iOS APP持续交付的方法,包括以下步骤:
步骤S1:先给本机环境安装GitLab Runner,在Mac终端先运行命令:curl-Lhttps://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash,然后在Mac终端执行命令:sudo yum install gitlab-runner,进行安装。
步骤S2:然后给本地项目注册GitLab Runner,将启动的Runner和对应的远程gitlab项目上的GitLab CI绑定,在项目根目录中生成.gitlab-ci.yml文件,等待配置。注册具体操作如下:
(1)打开GitLab中的项目页面,在项目设置中找到runners,具体路径是Settings—CI/CD—Runners—右侧展开按钮—Setup a specific Runner manually;
(2)在终端运行gitlab-runner-register;
(3)输入CI URL (Specify the following URL during the Runner setup:后面对应的url),回车;
(4)输入Token (Use the following registration token during setup: 后面对应的token),回车;
(5)输入Runner的名字(不重要,可输入做标识),回车;
(6)是否输入tag标记,回车;(注:因为本实施例是以本机作为服务地址的,这里的tag千万别输入东西,要不然后面运行总是卡住,找不到对应服务器,默认到Docker上了,直接回车即可。)
(7)选择Runner的类型,输入Shell,回车。
步骤S3:通过fastlane脚本实现本地项目自动打包;在fastlane脚本中配置自动打包以及执行swift脚本命令,让其执行完fastlane的自动脚本打包后,再继续执行swift中的脚本;
步骤S4:通过swift脚本将fastlane所打的包或用户需要的文件进行上传到第三方平台,同时接入第三方通知***,比如钉钉机器人等,上传完成后来通知相关人员;用户需要的文件可以为项目的版本文件,或者可以触发APP中检测版本更新功能,从而让老用户的APP进行更新提示操作;
步骤S5:对S2中的gitlab-ci.yml文件进行配置,让其执行S3中的fastlane脚本;在gitlab-ci.yml文件中配置如下:在指定的分支上进行tag操作时,触发fastlane自动打包操作;
步骤S6:用户给gitlab远端项目打指定的tag版本,从而自动触发步骤S3中的fastlane脚本和步骤S4中的swift脚本;注意,在这里用户可以同时给多个项目打多个对应的tag版本,从而实现批量持续交付的目的。打tag版本,用户可以使用可视化的SourceTree或者SVN进行打包,或者用命令行,或者直接在gitlab服务器上直接手动操作;
步骤S7:自动打包上传到第三方后,通过swift脚本将第三方平台的下载地址集成进钉钉机器人这种第三方通知***,生成二维码并通知相关人员下载。
本发明一种实现iOS APP持续交付的方法,通过gitlab ci以及调用多脚本语言实现一体化自动打包,与传统的Xcode打包方法(通过Xcode先进行手动编译,然后手动打包并导出,再传到对外指定下载平台上)相比,本发明的打包方式采用***配置为输入参数,全程自动化打包的方式,可以方便快速的进行打包,提高效率,减少出错率。
需要注意的是,本发明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
另外,上述具体实施例是示范性的,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种实现iOS APP持续交付的方法,其特征在于,通过fastlane导出iOS安装包,然后通过swift语言脚本实现平台交付;注册GitLab Runner,将启动的Runner和GitLab CI绑定;在项目根目录中配置.gitlab-ci.yml文件,使项目在由开发人员打tag时会自动重新更新一遍项目的pod库,然后触发之前的fastlane导出iOS安装包操作,将开发过程中的tag版本维护和iOS APP持续交付结合在一起;具体包括以下步骤:
步骤S1:给本地项目注册GitLab Runner,将启动的Runner和对应的远程gitlab项目上的GitLab CI绑定,在项目根目录中生成.gitlab-ci.yml文件,等待配置;
步骤S2:通过fastlane脚本实现本地项目打包并导出iOS安装包;在fastlane脚本中配置打包和导出命令以及执行swift脚本命令,让其执行完fastlane的打包及导出脚本后,再继续执行swift中的脚本;
步骤S3:通过swift脚本将用户需要的文件和fastlane所打的包进行上传到指定的对外平台;所述用户需要的文件为项目的版本文件,或触发APP中检测版本更新功能的文件;
步骤S4:对步骤S1中的.gitlab-ci.yml文件进行配置,让其执行步骤S2中的fastlane脚本;在.gitlab-ci.yml文件中配置如下:在指定的分支上进行tag操作时,触发fastlane脚本操作;
步骤S5:用户给gitlab远端项目打指定的tag版本,从而自动触发步骤S2中的fastlane脚本和步骤S3中的swift脚本;触发之前的fastlane导出iOS安装包操作中复制多个项目端,多个项目通过打多个对应的tag,实现批量持续交付。
2.根据权利要求1所述的实现iOS APP持续交付的方法,其特征在于,fastlane所打的包进行上传的同时接入第三方通知***,上传完成后通知相关人员。
3.根据权利要求2所述的实现iOS APP持续交付的方法,其特征在于,所述第三方通知***为钉钉机器人或邮件。
4.根据权利要求1所述的实现iOS APP持续交付的方法,其特征在于,打指定项目的tag版本时,用户使用可视化的SourceTree打包,或者使用SVN进行打包,或者用命令行,或者直接在gitlab服务器上手动操作。
5.根据权利要求1所述的实现iOS APP持续交付的方法,其特征在于,自动打包上传到指定对外下载平台后,通过swift脚本将指定对外下载平台的下载地址集成进入第三方通知***,生成二维码并通知相关人员下载;所述第三方通知***为钉钉机器人或邮件,对外下载平台为蒲公英或fir。
CN201911186310.6A 2019-11-28 2019-11-28 一种实现iOS APP持续交付的方法 Active CN110647349B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911186310.6A CN110647349B (zh) 2019-11-28 2019-11-28 一种实现iOS APP持续交付的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911186310.6A CN110647349B (zh) 2019-11-28 2019-11-28 一种实现iOS APP持续交付的方法

Publications (2)

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

Family

ID=69014669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911186310.6A Active CN110647349B (zh) 2019-11-28 2019-11-28 一种实现iOS APP持续交付的方法

Country Status (1)

Country Link
CN (1) CN110647349B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111562942B (zh) * 2020-04-30 2024-04-19 中国银行股份有限公司 基于Gitlab的移动APP持续集成装置和方法
CN115700465B (zh) * 2022-11-09 2023-05-09 安超云软件有限公司 一种可移动电子设备及其应用方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739507A (zh) * 2018-12-28 2019-05-10 睿驰达新能源汽车科技(北京)有限公司 一种代码持续集成方法和代码持续交付方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN107577469B (zh) 一种软件打包发布管理方法
CN111142903B (zh) 一种基于文件对比的配置文件交互式更新方法及装置
CN106775723B (zh) 基于Android平台的***固件定制的方法和Android设备
CN112882700B (zh) iOS应用程序构建方法及装置、电子设备及存储介质
US8028268B2 (en) System and method for building software package for embedded system
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
CN112799716B (zh) 一种代码管理方法及***
US8056062B2 (en) Methods and systems for converting application code in turbine control systems
US20180157479A1 (en) Cloud service framework for toolkit deployment
WO2007011942A1 (en) System and method for automatic or semi-automatic software integration
CN110647349B (zh) 一种实现iOS APP持续交付的方法
CN105468427A (zh) 一种自动编译和发布的实现方法及***
CN103645888A (zh) 一种自动构建操作***的***及方法
CN107544813B (zh) 一种静态库配置的切换方法和***
CN114385196A (zh) 结合rpa和ai的软件部署方法及装置
CN117573095A (zh) 一种支持持续集成的交叉编译框架的搭建及编译方法
CN110659022B (zh) 一种基于Java自动调用Python脚本的方法
CN116225415A (zh) 一种前端工程化方法及***
CN115390846A (zh) 编译构建方法、装置、电子设备和存储介质
CN113849181A (zh) 交叉编译工具链构建方法、装置、电子设备及存储介质
US20190244151A1 (en) Just in time compilation (jit) for business process execution
CN111913720A (zh) 一种程序部署方法及装置
JP2008225762A (ja) ライブラリ管理システム
JP2012093979A (ja) OSGiバンドル及びデプロイメントパッケージ自動作成システム、自動作成方法及び自動作成ツール

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