iOS如何实现自动化打包

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

内容简介:在我们的日常开发工作中,避免不了会出现这样的场景:需求迭代开发完成之后,需要提供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如何实现自动化打包》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Algorithms in Java, Part 5

Algorithms in Java, Part 5

Robert Sedgewick / Addison-Wesley Professional / 2003-7-25 / USD 54.99

Algorithms in Java, Third Edition, Part 5: Graph Algorithms is the second book in Sedgewick's thoroughly revised and rewritten series. The first book, Parts 1-4, addresses fundamental algorithms, data......一起来看看 《Algorithms in Java, Part 5》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具