Fastlane使用说明 自动化打包

Fastlane 使用大致流程如下:

思路弄清楚后操作时,参照demo中的文件修改即可。参数可以自定义配置(参数说明可查看官方文档)

image

一.安装fastlane

1.安装最新的Xcode命令行工具:

xcode-select --install

2.使用安装fastlane,下面两种方法使用其中一个即可

sudo gem install fastlane -NV

或者:

brew cask install fastlane

Fastlane官方文档https://docs.fastlane.tools/getting-started/ios/setup

现在对Appfile,Fastfile,Gemfile,Deliverfile文件说明如下(后面会用到)

Appfile: 存储有关开发者账号相关信息

Fastfile: 核心文件,用于命令行调用和处理具体的流程,lane相对于一个action方法或函数

Gemfile 类似于cocopods 的Podfile文件

.env 配置环境变量(在fastlane init进行初始化后并不会自动生成,如果需要可以自己创建

Deliverfile: deliver工具的配置文件,上传截图苹果和后台一些app信息 (默认不生成,需要sudo gem install deliver安装)然后在fastlane 目录下执行deliver init 即可)

要注意的点:

build_app命令等同于gym(别名)

deliver 命令相当于upload_to_app_store(别名)

二. 使用(操作流程)

2.1 在项目目录下执行 fastlane init

新版本安装的时候出现了下面的分支选择,按要求选择就行

1. Automate screenshots (自动截屏

2. ‍✈️ Automate beta distribution to TestFlight (自动testfilght型配置)

3. Automate App Store distribution (自动发布型配置)

4. Manual setup - manually setup your project to automate your (需要手动配置内容)

这里我们选择4,然后一直按回车。会生成Gemfile文件,fastlane文件夹,Appfile,Fastfile文件

Appfile: 存储有关开发者账号相关信息

Fastfile: 核心文件,用于命令行调用和处理具体的流程,lane相对于一个action方法或函数

Gemfile 类似于cocopods 的Podfile文件

.env 配置环境变量(在fastlane init进行初始化后并不会自动生成,如果需要可以自己创建

Deliverfile: deliver工具的配置文件,上传截图等 (默认不生成,需要sudo gem install deliver安装)然后在fastlane 下执行deliver init 即可)#此处不使用,自己去苹果后台配置

注意:自动生成的Gemfile里的路径需要把'.' 改为'fastlane'

plugins_path = File.join(File.dirname(FILE), '.', 'Pluginfile')eval_gemfile(plugins_path) if File.exist?(plugins_path)

plugins_path = File.join(File.dirname(FILE), 'fastlane', 'Pluginfile') eval_gemfile(plugins_path) if File.exist?(plugins_path)

image
image

2.2.1 修改Fastfile文件(以下为部分示例,后面有完整demo。这种使用时在项目目录下执行fast lane即可)

desc "Push a new release build to the 蒲公英" 

lane :pgyAction do

increment_build_number(xcodeproj: "XXXX")//这里是build版本号自增,防止小于等于之前build号,这里需要打开Xcode-- build Setting --Versioning System --为Apple Generic (此处有坑,后面解释)

build_app(workspace: "项目名", scheme: "XXXX")

# 插件 --- 蒲公英

# fastlane add_plugin pgyer   发布到蒲公英需要执行这个命令安装pgyer工具

# fastlane add_plugin firim    发布到firim需要执行这个命令安装firim工具

# fastlane add_plugin fastlane-plugin-version  安装版本管理

pgyer(api_key:"XXXX",

user_key:"XXXX")

这里的"XXX"可以使用.env里的环境变量替 换为 ENV['User_Key'] 注:User_Key环境变量

end

使用时在项目目录下执行fastlane 即可,选择对应操作

还有一种写法外部传入版本号和build参数 (这种使用时需fastlane adhoc_pgy version:1.5 build:1

fastlane lane名称 version: build:)

函数(一个方法)

desc "版本处理"

def setup_version_build(options)

increment_build_number(

build_number:options[:build])

increment_version_number(

version_number:options[:version])

end


desc "上线蒲公英"

lane :adhoc_pgy do |options|

setup_version_build(options)#调用上面函数

increment_build_number(xcodeproj: ENV['Xcodeproj'])#不需要执行这行

build_app(

workspace: ENV['Workspace'],#指定workspace (使用cocopods)

scheme: ENV['Scheme'],#指定打的哪个scheme

silent: true,

clean: true,#打包前clean

output_directory: ENV['Pgy_Output_Path'],#输出目录

output_name: logDirectory,#输出名字

export_xcargs: "-allowProvisioningUpdates",#允许自动更新配置

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

pgyer(api_key: ENV['Api_Key'],

user_key: ENV['User_Key'])#ENV['XX']使用环境变量,看2.2.3

end

2.2.2修改Appfile文件(部分)

Appfile使用.env方式直接读取变量即可 (看2.2.3)

app_identifier ENV['App_Identifier']

apple_id ENV['Apple_Id']

team_id ENV['Team_Id']

2.2.3 添加环境变量.env

在fastlane文件夹下创建添加.env 环境变量(touch .env )

例如:# 蒲公英 的api_key

Api_Key = "de1a6608cce966dee05a5df3c654113b"

蒲公英 的user_key

User_Key = "cd4b534a73e5bce41a9fa92b1fdc7b31"

2.2.4 添加发布到蒲公英和fir工具,如不需要可跳过

在项目中fastlane目录下执行

fastlane add_plugin pgyer 发布到蒲公英需要执行这个命令安装pgyer工具

fastlane add_plugin firim 发布到firim需要执行这个命令安装firim工具

安装后生成Pluginfile

image
image

2.3以上要修改的地方修改好了(发布是否需要指定版本号和build)

1.不需要指定版本号,使用build自增(不指定版本号,使用时执行fastlane命令)

increment_build_number(xcodeproj: ENV['Xcodeproj'])#修改Fastfile 需要执行这行


2.指定版本号和build(使用时执行fastlane + lane名 version:X build:X)例如fastlane adhoc_pgy version:1.5 build:1

setup_version_build(options)#调用函数 #修改Fastfile 需要执行这行

image
image

如出现Apple Generic Versioning is Not enabled ,需要打开Xcode-- build Setting --Versioning System --为Apple Generic 。如果已经打开,还是报错。Xcode10的问题,需要在Xcode菜单栏选择File-- Workspace Setting就会出现如下的界面,选择Legacy Build即可

image

出现SuccessFully Exported 则导出ipa和dSYM成功

image

发布蒲公英成功如下图:

image

是否需要自动发布APP后台截图 和更新信息 备注等:配置有两种方法

发布到appstore时 发现后台的描述不见了或者被覆盖了,需要在lane 里添加禁止使用元数据和截图.不传截图和元数据 skip_screenshots,skip_metadata设为true。要传的话设为false 如下图。(PS:可以配置多个参数,需要可查看下面Deliver文件说明传送门)

1.修改Fastfile文件pload_to_app_store 方法添加参数

pload_to_app_store(skip_screenshots: true,skip_metadata: true )

2.在fantlane文件夹下,修改Deliverfile 文件,如下图(没有的话在fantlane文件夹下执行deliver init)

skip_screenshots(true)

skip_metadata(true)

image

如果需要手动上传元数据等,可以先更新下来,然后修改需要的txt文件。如下图:截图则放在screenshots下即可.发布时会弹出一个html文件预览配置的信息(如下图),终端会弹出Does the Preview on path './fastlane/Preview.html' look okay for you? 查看没问题后y ,如果错了n ,然后修改。

从App Store Connect下载现有屏幕截图

fastlane deliver download_screenshots

从App Store Connect下载现有元数据

fastlane deliver download_metadata

image
image
image

部分deliver参数

image

你可能感兴趣的:(Fastlane使用说明 自动化打包)