fastlane教程

Fastlane是一套使用Ruby写的自动化工具集,旨在简化Android和iOS的部署过程,自动化你的工作流。它可以简化一些乏味、单调、重复的工作,像截图、代码签名以及发布App。它可以使用集成好的action,也可以自定义action(比如封装一些git语句或者shell)

如何安装?

# 删除默认的gem源 

 gem sources --remove https://rubygems.org

# 增加ruby-china作为gem源

gem source -a https://gems.ruby-china.com

# 清空源缓存

gem sources -c

# 更新源缓存

gem sources -u

# 安装fastlane

sudo gem install fastlane --verbose

如何使用?

cd到你的项目目录执行fastlane init

fastlane教程_第1张图片
选择你想要创建的类型

选择4手动配置

然后一直卡在bundle update,解决办法为:

Fastfile可以使用shell,比如: 

lane :custom_lane do

    sh("rm /Users/hy/Desktop/test.h") //shell命令删除test.h

end


文件系统:

初始化成功后会在当前工程目录生成一个fastlane文件夹,文件目录为下。

fastlane

Appfile,用于存放app ID和开发者的Apple ID

Fastfile,用于管理创建的lane,lane则可以调用各个action(即fastlane的工具链)

Snapfile,用于指定需要进行屏幕截图的设备类型(根据选项生成,可自己创建文件用于配置)

Deliverfile,用于配置发布至appStore的文件(根据选项生成,可自己创建文件用于配置)

lane的使用:

lane是fastfile中的方法定义标签,可以理解为swift中定义一个函数,前面的 func。fastlane 都是基于ruby,所以fastfile中也是使用ruby语法的。

定义一个简单的无参lane:

lane : package

    puts"这是一个lane"

end

定义一个带参的lane,在fastfile中option类似于一个字典集。我们可以通过 option[:configuration] 取其中value

lane : package do |option| 

     configuration = option[:configuration] 

     puts configuration 

end

//lane的调用

package(configuration:'Release', export_method:'ad-hoc')


常用命令:

fastlane actions: 展示所有有效action列表

fastlane action [action_name]: 展示一个action的详细说明,使用方法等

fastlane lanes: 展示fastfile中的所有lane

fastlane list: 展示fastfile中的所有的有效的lane

fastlane new_action: 创建一个新的action

fastlane env: 打印fastlane、ruby环境,一般提bug到issue的时候会要求提供

生命周期:

执行顺序方法名说明

1.before_all在执行 lane 之前只执行一次

2.before_each每次执行 lane 之前都会执行一次

3.lane自定义的任务

4.after_each每次执行 lane 之后都会执行一次

5.after_all在执行 lane 成功结束之后执行一次

6.error在执行上述情况任意环境报错都会中止并执行一次

Action:

除开我们自定义fastfile中的方法,fastlane还提供了很多已经写好的独立的方法库,也就是Actions。

常用Action

Action列表文档: Actions

我们常用的主要包括下面几部分,其他action的使用可以参考官方文档:

scan=> 自动运行测试工具,并且可以生成漂亮的HTML报告

match=> 一个新的证书和配置文件管理工具。把所有需要用到的证书传到git私有库上,任何需要配置的机器直接用match同步回来就不用管证书问题了

gym=> Fastlane家族的自动化编译工具,和其他工具配合的非常默契

deliver=> 自动上传截图,APP的元数据,二进制(ipa)文件到iTunes Connect

pilot=> 管理TestFlight的测试用户,上传二进制文件

spaceship=> 为pilot,boarding和deliver等工具提供和 iTC 和 ADC 的交互API。spaceship本来是个独立的项目,后来被Fastlane收编进来非官方的iTunes Connect JSON API的文档


打测试包:

gym:

常用参数:scheme :指定打的哪个scheme

project :指定project (未使用cocopods)

workspace :指定workspace (使用cocopods)

clean :打包前clean

xcargs : 附加一些参数传递给xcodebuild 如: xcargs:'DEBUG_INFORMATION_FORMAT="dwarf-with-dsym"',

export_method :出包方法 app-store, ad-hoc,package, enterprise, development

configuration : 指定构建App的配置 Release、Debug、自定义output_directory : 输出目录

output_name :输出名称

include_symbols :是否包含调试符号

include_bitcode :是否开启bitcode

纯swift工程打包,在非appstore证书下签出来的包都缺少一个swiftsupport文件夹,里面放的是swift的支持库。


在Fastfile中新建一个lan

lane :beta do

        # 调用 gym 打测试包

        gym(

            configuration:"Debug",

            export_method:"development"

        )

end

你可能感兴趣的:(fastlane教程)