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 使用心得的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/420003

相关文章

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图