iOS如何实现自动化打包

栏目: 服务器 · 发布时间: 7年前

内容简介:在我们的日常开发工作中,避免不了会出现这样的场景:需求迭代开发完成之后,需要提供ipa包给QA同学进行测试,一般会执行如下流程:1.执行Git Pull命令,拉最新的代码到本地 2.Pod Install安装最新的依赖库 3.在Xcode点击Archive编译并打包 4.选择输出一个iOS AdHoc模式的ipa文件 5.将ipa上传到Fir平台,生成二维码供测试同学安装。即便整个过程很顺利,也需要消耗开发同学十到二十分钟的时间,但如果测试过程中发现有问题,那么需要修复完毕后重复上面的这几个步骤。对于开发

前言

在我们的日常开发工作中,避免不了会出现这样的场景:需求迭代开发完成之后,需要提供ipa包给QA同学进行测试,一般会执行如下流程:1.执行Git Pull命令,拉最新的代码到本地 2.Pod Install安装最新的依赖库 3.在Xcode点击Archive编译并打包 4.选择输出一个iOS AdHoc模式的ipa文件 5.将ipa上传到Fir平台,生成二维码供测试同学安装。

即便整个过程很顺利,也需要消耗开发同学十到二十分钟的时间,但如果测试过程中发现有问题,那么需要修复完毕后重复上面的这几个步骤。对于开发同学来说,这种重复且没有技术含量的机械工作简直是噩梦啊!

正文

那么什么样的 工具 可以帮助开发同学解决这个问题呢?下面就介绍一下,目前市面上比较流行的自动化流程工具——Fastlane。Fastlane是用 Ruby 语言编写的一套自动化工具集和框架,每一个工具实际都对应一个Ruby脚本,用来执行某一个特定的任务,而Fastlane核心框架则允许使用者通过类似配置文件的形式,将不同的工具有机而灵活的结合在一起,从而形成一个个完整的自动化流程。到目前为止,Fastlane的工具集基本上涵盖了打包,签名,测试,部署,发布,库管理等等移动开发中涉及到的内容。同时该套件也支持与 Jenkins 、CocoaPods、xctools 等其他第三方工具的集成。

初步了解之后,让我们来看一下在如何项目里面应用fastlane。

第一步、安装及初始化:

1.安装 Xcode command line tools:

xcode-select —install

2.安装fastlane

sudo gem install fastlane -NV

3.进入项目路径下,初始化fastlane(这部分可根据实际项目需要配置)

fastlane init

3.1.选择想使用fastlane做什么?

iOS如何实现自动化打包

3.2.要求你输入Apple开发证书的App ID

iOS如何实现自动化打包

3.3.是否管理APP的metadata

iOS如何实现自动化打包

3.4.一路enter,直到初始化成功

iOS如何实现自动化打包

3.5.初始化完成后的文件目录结构

iOS如何实现自动化打包

第二步、知识准备:

1.文件介绍

Appfile

存储App信息,比如Apple ID,App Identifier,Team ID等信息。

Fastfile

自动化脚本配置文件,所有的任务都是在这个文件来调度的。

.env

全局的环境配置文件,文件里面我们可以配置一些全局的信息,其他文件可以通过类似 ENV['Apple_Id'] 这种方式获取。

Deliverfile

上传AppStore包需要的配置文件,在这个文件里面可以设置App Store Connect的所有配置项。

metadata

存放APP元数据文件,包括关键词、版本更新日志、图标等。

screenshots

存放应用截图

2.常用的工具集(action)介绍

  • scan(run_tests):自动运行测试工具。
  • cert(get_certificates):自动创建iOS代码签名证书(.cert文件),如果存在则下载已存在的证书文件。
  • sigh(get_provisioning_profile): 下载provisioning profiles。
  • gym(build_ios_app): 编译、打包,生成签名的ipa文件 。
  • deliver(upload_to_app_store): 上传App到App Store Connect。
  • snapshot(capture_ios_screenshots): 截图。
  • 。。。

更多的action介绍可以参考fastlane文档中的介绍: docs.fastlane.tools/actions/

3.lane介绍

当我们对Fastfile文件进行编写时,实际上就上通过在自定义的lane中添加合适的工具集action让fastlane按照我们的意愿去顺序执行任务,当然fastlane默认就有一些系统级lane。

系统级lane:

  • before_all,就是在执行一次脚本之前首先执行的代码,我们可以在这里面执行一些公共的东西,比如git_pull,cocoapods。
  • after_all, 成功结束之后,处理共有的后置逻辑。
  • before_each,每次执行 lane 之前都会执行一次。
  • after_each,每次执行 lane 之后都会执行一次。
  • error,在执行上述情况任意环境报错都会中止并执行一次。

第三步、代码示例:

有了上面的知识准备,我们就以上传ipa包到Fir为例,来看看fastlane自动化打包具体的代码是怎么实现的。

首先看一下.env文件:

iOS如何实现自动化打包

然后是Appfile:

iOS如何实现自动化打包

最后就是我们的FastFile:

iOS如何实现自动化打包

iOS如何实现自动化打包

iOS如何实现自动化打包

iOS如何实现自动化打包

当我们完成上面的操作以后,我们就可以在终端工具内通过 fastlane upload_fir build:PublicDebug log:update_info 一行代码来实现打包并上传ipa包到Fir平台了,是不是很酷!

当然你也可以在我们的项目目录中找到我们的ipa包、dsym文件、fastlane的打包日志文件等等。

iOS如何实现自动化打包

iOS如何实现自动化打包

结语

通过使用Fastlane实现自动化打包以后,开发同学终于可以跟繁琐的机械工作说拜拜了~

除了本文介绍的功能,fastlane还有更多的妙用等着大家去挖掘,比如自定义action,Plugin,又比如持续集成,等等。在此本文也仅是起一个抛砖引玉的作用,希望大家能共同探讨fastlane的更深层的用途。

最后声明,本文主要是为了用于阶段性学习记录,不会用于商业用途,如不慎存在侵权行为,请随时联系maojiadong921@gmail.com。

参考资料:

fastlane GitHub地址: github.com/fastlane/fa…

fastlane 文档说明地址:docs.fastlane.tools/


以上所述就是小编给大家介绍的《iOS如何实现自动化打包》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Code

Code

Charles Petzold / Microsoft Press / 2000-10-21 / USD 29.99

Paperback Edition What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of ......一起来看看 《Code》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具