iOS使用fastlane一键打包上传到蒲公英

iOS使用fastlane一键打包上传到蒲公英

1、安装fastlane

1.1 安装fastlane

1
sudo gem install fastlane

1.2 检查版本 fastlane

1
fastlane --version

2、工程添加fastlane

2.1 初始化配置

1
2
$ cd 项目目录
$ fastlane init

2.2 初始化什么样的配置,上传到蒲公英,我们选4

1
2
3
4
5
What would you like to use fastlane for?
1. 📸 Automate screenshots
2. 👩‍✈️ Automate beta distribution to TestFlight
3. 🚀 Automate App Store distribution
4. 🛠 Manual setup - manually setup your project to automate your tasks

这个地方会要你选择。
1.自动截屏。这个功能能帮我们自动截取APP中的截图,并添加手机边框.
2.自动发布beta版本用于TestFlight
3.自动的App Store发布包
4.手动设置
我这里是选的第4个。自行选择就好。

有可能会遇到卡着的情况,比如:
-w583

这里如果卡住,取消重新来一次

2.3 安装蒲公英的 Fastlane 插件

在终端中,输入以下命令,即可安装蒲公英的 fastlane 插件。

1
fastlane add_plugin pgyer

2.4 安装fir的 Fastlane 插件

在终端中,输入以下命令,即可安装fir的 fastlane 插件。

1
fastlane add_plugin fir

或者

1
fastlane add_plugin fir_cli

或者

1
fastlane add_plugin firim

3、配置

3.1 配置Appfile文件,配置如下:

1
2
app_identifier "" # 你App的bundleID
apple_id "" # 你的开发账号邮箱

3.2 配置Fastfile文件,配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
default_platform(:ios)

platform :ios do
desc "Description of what the lane does"
lane :build do |options|
#输出ipa包路径
outputDir = "~/ipa"
gym(
# 指定输出的ipa名称
output_name:"XXXApp_#{options[:log]}",
# 指定项目的scheme 工程名字
scheme:"XXXX",
# 是否清空以前的编译信息 true:是
clean:false,
# 指定打包方式,Release 或者 Debug
configuration:"Debug",
# 指定打包方式,目前支持app-store, package, ad-hoc, enterprise, development
# 注:由于使用手动配置证书,在export_options指定打包方式
#export_method:"#{ipa_exportMethod}",
# 指定输出文件夹
output_directory: outputDir,
# Xcode9将不会允许你访问钥匙串里的内容,除非设置allowProvisioningUpdates
export_xcargs:"-allowProvisioningUpdates",
# 隐藏没有必要的信息
silent:true,
# 手动配置证书,注意打包方式需在export_options内使用method设置,不可使用export_method
export_options: {
method:"development"
},
include_bitcode: false,
workspace: "XXXX.xcworkspace", #如果项目使用CocoaPods需要加上
)
end
end

一个lane就是一个任务,build名字可以自己改,gym是fastlane提供的打包工具,括号里面就是你自己配置的一些东西。意思你用fastlane打包的时候,Xcode也可以编译运行手机程序了,不影响你Xcode工作,只是不能修改代码,但是打断点、看图层还是可以的。
最后一个就是蒲公英的配置了

配置上传蒲公英

1
2
3
4
5
6
# => 上传pgyer
lane :uppgy do |options|

build(log: "#{options[:log]}")
pgyer(api_key: "XXXXXXXXXXXXXXXXXXXXXXXX", user_key: "XXXXXXXXXXXXXXXXXXXXXXXX", update_description: "XXXXX", password: "123", install_type: "2")
end

update_description更新描述,password配置安装密码,如果配置加上这个,同时install_type也要加上,type为2,如果不要密码,就不用加上password,install_type也不用,如下

1
2
3
4
5
6
# => 上传pgyer
lane :uppgy do |options|

build(log: "#{options[:log]}")
pgyer(api_key: "XXXXXXXXXXXXXXXXXXXXXXXX", user_key: "XXXXXXXXXXXXXXXXXXXXXXXX", update_description: "XXXXX")
end

配置firm

1
2
3
4
5
6
7
# => 上传fir
lane :upfir do |options|

build(log: "#{options[:log]}")
firim(firim_api_token: "216a19f16b13e9dec2d36fb4142b6e39")
#fir_cli api_token: "216a19f16b13e9dec2d36fb4142b6e39", changelog: "#{options[:log]}"
end

firm有两个上传方法,fir_cli和firim看那个可以用用哪个,另一个要注释掉,前面加个#就是注释

4、上传

cd 到工程目录下,和fastlane同级的目录。输入如下指令

1
fastlane ios upfir

等待打包上传即可

4.1 fir 上传成功

-w517

Tips:踩坑指南

1.报错Error setting value ‘XXXXX.xcworkspace’ for option ‘workspace’

打开Fastfile文件,修改以下地方

1
workspace: "XXXXXX.xcworkspace",  #如果项目使用CocoaPods需要加上

2.报错Could not find action, lane or variable ‘fir_cli’.

-w570

没有安装插件,回到2.4,执行以下命令

1
fastlane add_plugin fir_cli

3.报错You passed invalid parameters to ‘firim’.

-w563

-w577

传入了无效参数,打开Fastfile文件,修改以下地方

1
firim(firim_api_token: "b81d14b2ee462c3f63948b94ec0ab16a", changelog: "#{options[:log]}")

改成

1
firim(firim_api_token: "b81d14b2ee462c3f63948b94ec0ab16a")

或者

1
firim(firim_api_token: "b81d14b2ee462c3f63948b94ec0ab16a", app_changelog: "#{options[:log]}")

参考文档:

使用 Fastlane 上传 App 到蒲公英
fastlane文档

-------------本文结束感谢您的阅读-------------