fastlane的基本使用(自动化打包发布)

介绍

fastlane是由国外大神开发的一整套帮助app开发者(主要是iOS)进行快速打包及上传发布的工具集,将繁杂的编译-等待-打包-等待-上传-等待过程通过脚本自动化实现
fastlane
官方文档

安装

终端执行gem install fastlane进行安装,若是使用系统自带的ruby,则需在前面加上sudo权限
安装完成后执行xcode-select --install,检查是否安装了最新版的xcode命令工具

初始化

在项目目录下,执行fastlane init进行初始化

选择模板

按照需求选择对应序号进行初始化,一般是选择4自行配置,接着按照提示键入enter完成初始化
完成后,会在项目目录下生成fastlane文件夹及Gemfile文件
新增文件

打开Appfile文件,输入项目的相关信息

app_identifier("APP_IDENTIFIER")  # APP_IDENTIFIER为bundle id
apple_id("APPLE_ID") # APPLE_ID为对应的开发者账号

# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile

配置自动化脚本并打包

fastfile文件是用来编写和定制打包脚本,我们可以在内部定义自己的lane(任务),而每个lane又是由一个个action组成的工作流,举例一些常用的action:

  • gym 进行编译ipa文件
  • scan 自动化测试
  • cocoapods 运行pod install
  • deliver 用于上传至appstore
  • sigh 用于获取配置文件
  • match 同步证书签名

更多的action介绍

贴上一些简单的脚本配置仅供参考


default_platform(:ios)

platform :ios do

  #adhoc打包
  lane :adhoc do     #adhoc为任务名
  #increment_version_number(version_number: op[:vnum])#vnum 是参数名,命令行调用的时候输入的参数名,设置version版本
  #increment_build_number(build_number: op[:bnum])#设置build版本
  sigh
  desc "ad-hoc"
  gym(
    scheme: "scheme",   #工程下要打包的项目,如果一个工程有多个项目则用[项目1,项目2]
    export_method: "ad-hoc", #打包的方式, development/adhoc/enterprise/appstore
    output_directory: './build',  #指定ipa最后输出的目录
    )
  #pgyer(api_key: "api key", user_key: "user key", update_description: "测试自动打包上传")#上传到蒲公英
  # firim(firim_api_token: [firim_api_token]) #上传到firim
end

编写完成后,执行fastlane adhoc,即可对应adhoc证书及配置自动进行编译打包ipa,并将ipa文件放在项目的build文件目录下

fastlane提供了很多插件,支持直接将生成的ipa文件上传到对应的平台,如蒲公英/firim等其他插件
以蒲公英为例,在项目目录下终端执行fastlane add_plugin pgyer安装插件
将上面fastfile文件中的pgyer(api_key: "api key", user_key: "user key", update_description: "测试自动打包上传")#上传到蒲公英注释打开,登录蒲公英拿到api key和user key并替换,此时再执行fastlane adhoc就会完成编译-打包-上传到蒲公英的整个过程

按照自己的需求去配置好fastfile文件,从此解放双手,妈妈再也不用担心我不会打包了:-D