Fastlane 使用心得

2023-11-23 18:50
文章标签 使用 心得 fastlane

本文主要是介绍Fastlane 使用心得,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 为什么选择fastlane
在程序的世界里,一切重复性的,流程化的工作都可以交给自动化/工具去完成。
在移动开发中也是如此,编写代码只是软件开发中的一部分,除此之外还需要我们编译、打包、上传、发布、部署、库管理、版本控制等coding 之外的事,而正是这些重复而又繁杂的工作,耗费了我们大量的时间。
所以面对这样的工作,总会有人想要做出改变,于是就会出现许多好用的工具,既方便了自己,又帮助了其他人。

2. 关于fastlane
今天就要给大家介绍一个工具: fastlane, 这个在GitHub上面属于明星项目,目前共有1万多个star,并且有1500多个fork,这个在开源方面算比较厉害的了。
先简单介绍一下,fastlane使用ruby语言编写的一套自动化工具集和框架,每一个工具实际都对应一个ruby脚本,用来执行某一个特定的任务,而fastlane核心框架则允许使用者通过配置文件的形式,将不同的工具有机而灵活的结合在一起,从而形成一个完整的自动化流程
到目前为止,fastlane 的工具集大约包含了170多个小工具,基本涵盖了打包,签名,测试,部署,发布,库管理等移动开发中所涉及到的内容。关于这些工具详细的介绍和使用,可以在fastlane 文档中去查阅。
如果这些工具仍然没有符合你的要求,没有关系,得益于fastlane,本身强大的action和plug机制,如果你恰好懂一些ruby开发的话,可以轻易的编写出自己想要的工具。
其实fastlane 的安装非常简单,和cocoapod 一样,fastlane 也可以通过rubygems来安装,如果你的电脑上有ruby环境的话,只需要一句话就可以完成,gem install fastlane

3. 移动端持续集成和持续交付的场景和痛点
fastlane 本身能做的事情很多,但是其中一个最为重要的作用就是能够无缝的嵌入在持续测试和交付的体系中。
下面可以为大家例举一个场景
当一个迭代开发测试结束,服务器端上线之后,我们会使用Testflight进行线上跟测,一般会执行以下流程:
1. 执行git pull,拉取最新代码到本地
2. pod install 安装最新的依赖库
3. 在Xcode中将build version增加
4. 在Xcode中点击archive编译并打包
5. 选择输出一个iOS App Store模式的IPA文件
6. 通过application loader将IPA上传至ITC(Itunes connect)
7. 然后等待ITC Process 完成之后,登录ITC选择刚上传的IPA文件进行Testflight测试
8. 由于修改了版本号,所以需要将代码commit和push 一下
如果线上跟测发现有问题,那么需要修复完毕和重复上面8个步骤。
其实做过这件事的同学应该都有体会,顺利的话差不多一次得20到30分钟,如果某一次build version 忘记增加了,那么前面的工作都白做了。

4. fastlane 在项目中的应用
上面介绍了fastlane 在持续集成和交互上的一些优势,那么我们在来看看移动端目前的发展趋势。
最近几年,随着智能手机的普及,移动端不仅要承载更多业务场景的实现,并且还要应对不断变化的也无需求,敏捷开发也是如此,这就要求我们团队能够迅速响应变化,快速迭代,那么随之而来的问题就是,如何保障在不牺牲质量的前提下,尽可能的提升我们的速度,我觉得这一切需要建立在高质量的持续测试和持续交付体系之上,

所以我们团队从前一段时间开始,一直在尝试着寻找这样的一种工具,可以快速的帮助我们持续集成与交互。
刚开始我们在尝试使用Jenkins+pgyer搭建了一套持续测试的环境,大致的流程如下图:

说实话,效果还是可以的,至少在一定时期内满足了我们的要求,但是Jenkins本身只是一个通用的CI流程管理系统,本身并不提供诸如ITC提包和Meta内容管理,签名,证书管理等等和移动端业务紧密结合的场景,而且配置的过程相当繁琐。

前段时间闲暇之余,我们在许多博客上面发现了Fastlane,看了Readme后感觉有戏,于是决定尝试一下。其实刚开始的时候,我们也只是用Fastlane来解决iOS团队内证书同步和上传ITC的问题,但是随着深入的研究,发现其实Fastlane能做的更多,比如:私有Pod的发布,代码的静态检查,UIAutomation测试等等。

另外,Fastlane本身也可以和Jenkins,Circle等主流CI系统做很好的集成,并且由于主要的CI流程都由Fastlane来管理和执行,所以从根本上降低了这些系统配置的复杂度。
随着我们在项目中更深入的运用Fastlane, 持续集成、测试、交付离我们不远了。


参考文档:

http://www.infoq.com/cn/articles/actual-combat-of-fastlane-part01

这篇关于Fastlane 使用心得的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/a411360945/article/details/79832480
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/420003

相关文章

使用Java将实体类转换为JSON并输出到控制台的完整过程

《使用Java将实体类转换为JSON并输出到控制台的完整过程》在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用JSON格式,用Java将实体类转换为J... 在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用j

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

Python logging模块使用示例详解

《Pythonlogging模块使用示例详解》Python的logging模块是一个灵活且强大的日志记录工具,广泛应用于应用程序的调试、运行监控和问题排查,下面给大家介绍Pythonlogging模... 目录一、为什么使用 logging 模块?二、核心组件三、日志级别四、基本使用步骤五、快速配置(bas

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

Python文件操作与IO流的使用方式

《Python文件操作与IO流的使用方式》:本文主要介绍Python文件操作与IO流的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python文件操作基础1. 打开文件2. 关闭文件二、文件读写操作1.www.chinasem.cn 读取文件2. 写

PyQt6中QMainWindow组件的使用详解

《PyQt6中QMainWindow组件的使用详解》QMainWindow是PyQt6中用于构建桌面应用程序的基础组件,本文主要介绍了PyQt6中QMainWindow组件的使用,具有一定的参考价值,... 目录1. QMainWindow 组php件概述2. 使用 QMainWindow3. QMainW

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

java变量内存中存储的使用方式

《java变量内存中存储的使用方式》:本文主要介绍java变量内存中存储的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍2、变量的定义3、 变量的类型4、 变量的作用域5、 内存中的存储方式总结1、介绍在 Java 中,变量是用于存储程序中数据

关于Mybatis和JDBC的使用及区别

《关于Mybatis和JDBC的使用及区别》:本文主要介绍关于Mybatis和JDBC的使用及区别,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、JDBC1.1、流程1.2、优缺点2、MyBATis2.1、执行流程2.2、使用2.3、实现方式1、XML配置文件