您的位置:首页 > 移动开发 > IOS开发

iOS中使用Fastlane实现自动化打包和发布

2017-05-22 09:55 676 查看



iOS中使用Fastlane实现自动化打包和发布

2017-05-19 14:46 编辑: sasukeo 分类:iOS开发 来源:iOS_小松哥的简书
1 1241

iOS开发自动化fastlane

招聘信息:

Cocos2d-x js高级开发工程师
Mac开发
应用开发工程师(iOS)
技术合伙人-后端工程师
高级iOS开发工程师
资深软件研发工程师
嵌入式软件工程师
产品经理
cocos2d-x休闲游戏开发
Cocos2d-x游戏客户端开发
Java工程师

简介

Fastlane是一套使用Ruby写的自动化工具集,用于iOS和Android的自动化打包、发布等工作,可以节省大量的时间。



Fastlane

Github:https://github.com/fastlane/fastlane

官网:https://fastlane.tools/

文档:https://docs.fastlane.tools/

在写这篇文章的时候,他在Github上已经有15000+ star。

安装

1、首先要安装正确的 Ruby 版本。在终端窗口中用下列命令来确认:

2、然后检查 Xcode 命令行工具是否安装。在终端窗口中输入命令:

如果未安装,终端会开始安装,如果报错误:command line tools are already installed, use "Software Update" to install updates.代表已经安装。

3、以上依赖配置好之后就可以通过 rubygem 进行安装了:

安心等待一会,fastlane就安装完成了。

初始化

打开终端,cd到你的工程目录,然后执行fastlane init:

在 "Your Apple ID" 这一步输入苹果开发者账号。在“Please confirm the above values”这一步,确认信息,没问题输入 y。然后,fastlane 会进行一系列的初始化操作,包括下载 App Store 上的元数据和截屏文件。

等待初始化完成之后,工程目录下就多了一个 fastlane目录,其内容如下:



fastlane目录

咱们来看两个主要的,Appfile和Fastfile。

Appfile

Appfile用来存放app_identifier,apple_id和team_id。 了解详情,它的格式是这样的:

你也可以为每个lane(后面会讲到)提供不同的 app_identifier, apple_id 和 team_id,例如:

这里就是为Fastfile中定义的:inhouse设置单独的信息。

Fastfile

Fastfile管理你所创建的 lane ,了解详情。它的格式是这样的:

我们也可以定义一个自己的lane:

其中一个lane就是一个任务,里面是一个个的action组成的工作流。

利用目前支持的工具可以做所有包含自动化和可持续化构建的每个环节,例如:

scan 自动化测试工具,很好的封装了 Unit Test

sigh 针对于 iOS 项目开发证书和 Provision file 的下载工具

match 同步团队每个人的证书和 Provision file 的超赞工具

gym 针对于 iOS 编译打包生成 ipa 文件

deliver 用于上传应用的二进制代码,应用截屏和元数据到 App Store

snapshot 可以自动化iOS应用在每个设备上的本地化截屏过程

执行

定义完lane之后怎么执行呢?打开终端,切换到项目的根目录:执行fastlane lane'name就可以了。成功之后会在相应的路径下生成ipa文件,如果报错的话就根据错误信息好好查看文档

其他

1、这里是官方提供的一些例子

2、想了解fastlane命令的话可以执行$ fastlane --help

3、查看可用任务的列表,可以执行命令$ fastlane lanes

4、fastlane也提供了很多插件方便我们使用,例如pgyer(发布app到蒲公英)。我们也可以打完包直接传到蒲公英上,具体的可以看蒲公英提供的文档

如果你感觉有些插件不符合自己的情况,你甚至可以自定义插件

5、多个 lane 的话实际上是可以相互调用的,这个其实特别实用。例如:

6、我们可以在 Fastfile 文件中添加一个函数来设置version号和build号。

然后可以在一个lane中使用这个函数:

然后执行这个lane的时候:

好啦,先说到这里吧,Fastlane能做的事情还有很多,大家可以去好好看看文档,研究一些高级的用法吧!

欢迎关注 和我的专题:iOS技术交流,查看更多好文章。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 自动化 发布