iOS使用fastlane一行命令上传到蒲公英
1、安装fastlane
1.1 安装fastlane
sudo gem install fastlane
1.2 检查版本 fastlane
fastlane --version
2、工程添加fastlane
2.1 初始化配置
$ cd 项目目录
$ fastlane init
2.2 初始化什么样的配置,上传到蒲公英,我们选4
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个。自行选择就好。
有可能会遇到卡着的情况,比如:
这里如果卡住,取消重新来一次
2.3 安装蒲公英的 Fastlane 插件
在终端中,输入以下命令,即可安装蒲公英的 fastlane 插件。
fastlane add_plugin pgyer
2.4 安装fir的 Fastlane 插件
在终端中,输入以下命令,即可安装fir的 fastlane 插件。
fastlane add_plugin fir
或者
fastlane add_plugin fir_cli
或者
fastlane add_plugin firim
3、配置
3.1 配置Appfile文件,配置如下:
app_identifier "" # 你App的bundleID
apple_id "" # 你的开发账号邮箱
3.2 配置Fastfile文件,配置如下:
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工作,只是不能修改代码,但是打断点、看图层还是可以的。
最后一个就是蒲公英的配置了
配置上传蒲公英
# => 上传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也不用,如下
# => 上传pgyer
lane :uppgy do |options|
build(log: "#{options[:log]}")
pgyer(api_key: "XXXXXXXXXXXXXXXXXXXXXXXX", user_key: "XXXXXXXXXXXXXXXXXXXXXXXX", update_description: "XXXXX")
end
配置firm
# => 上传fir
lane :upfir do |options|
build(log: "#{options[:log]}")
firim(firim_api_token: "XXXXXXXXXXXXXXXXXXXXXXXX")
#fir_cli api_token: "XXXXXXXXXXXXXXXXXXXXXXXX", changelog: "#{options[:log]}"
end
firm有两个上传方法,fir_cli和firim看那个可以用用哪个,另一个要注释掉,前面加个#就是注释
4、上传
cd 到工程目录下,和fastlane同级的目录。输入如下指令
fastlane iOS upfir
等待打包上传即可
4.1 fir 上传成功
Tips:踩坑指南
1.报错Error setting value 'XXXXX.xcworkspace' for option 'workspace'
打开Fastfile
文件,修改以下地方
workspace: "XXXXXX.xcworkspace", #如果项目使用CocoaPods需要加上
2.报错Could not find action, lane or variable 'fir_cli'.
没有安装插件,回到2.4,执行以下命令
fastlane add_plugin fir_cli
3.报错You passed invalid parameters to 'firim'.
传入了无效参数,打开Fastfile
文件,修改以下地方
firim(firim_api_token: "XXXXXXXXXXXXXXXXXXXXXXXX", changelog: "#{options[:log]}")
改成
firim(firim_api_token: "XXXXXXXXXXXXXXXXXXXXXXXX")
或者
firim(firim_api_token: "XXXXXXXXXXXXXXXXXXXXXXXX", app_changelog: "#{options[:log]}")
如果有其他问题,请在评论区留言,我会尽可能回复,谢谢