fastlane一键打包并上传至Appstore/蒲公英
Fastlane 简介
Fastlane 是一款为 iOS 和 Android 开发者提供的自动化构建工具,它可以帮助开发者将 App 打包、签名、测试、发布、信息整理、提交 App Store 等工作完整的连接起来,实现完全自动化的工作流,如果使用得当,可以显著的提高开发者的开发效率。
image.pngjenkins的Xcode integration更新比较慢(至2017.12.20还未支持Xcode9),Xcode更新后出现无法继续使用的问题,弃坑改用fastlane,发fastlane使用和配置简单,有开源社区支持,更新迅速功能强大,而且fastlane可以单独使用,也可以被多种CI接入。
配置使用环境
fastlane需要ruby环境,并官网要求ruby2.0以上。
安装/更新ruby
更新ruby使用的是RVM工具,在命令行进行如下操作,安装时可能出现进度不动,多半可能是因为被墙了。
#安装RVM工具
RVMcurl -L get.rvm.io | bash -s stable
#列出可安装的ruby版本(有原始的ruby也有其他版本的版本)
rvm list known
#根据刚才列出的ruby版本,安装一个ruby版本
rvm install ruby-xxxxx(xxx为版本号)
使用fastlane一键打包前置条件
- 开发者使用的是 mac 或 linux 系统
- 已经安装好 ruby、rubygems、bundler
- 已经安装了 Fastlane。如果没有安装,请参考:官方安装指南
- 开发者了解基本的 App 开发流程、终端的使用方法
- 本文使用环境为:macOS 10.15, Xcode 12, Fastlane 2.160.0, fastlane-plugin-pgyer 0.2.1
安装蒲公英的 Fastlane 插件
在终端中,输入以下命令,即可安装蒲公英的 fastlane 插件。
fastlane add_plugin pgyer
稍等几秒钟,如果出现类似下面的信息,就说明安装成功了:
在 Fastlane 启动蒲公英插件
在使用 Fastlane 之前,我们首先需要在项目中初始化 Fastlane。首先进入 App 的开发目录,执行以下命令来初始化 Fastlane:
fastlane init
执行上述命令后,Fastlane 会自动在 App 目录中生成 fastlane
目录,其中就会有 Fastlane 的配置文件 fastlane/Fastfile
,这里,我们用 vim 打开:
vim ./fastlane/Fastfile
然后,我们找到我们在用的工作流(action),在 build_app
指令后,加入蒲公英插件的配置信息。例如:
lane :beta do
build_app(export_method: "ad-hoc")
pgyer(api_key: "7f15xxxxxxxxxxxxxxxxxx141", user_key: "4a5bcxxxxxxxxxxxxxxx3a9e")
end
注意:
- 以上的
api_key
和user_key
,请开发者在自己账号下的应用管理
-App概述
-API
中可以找到,并替换到以上相应的位置。 - 在 Xcode 8.3 和 Xcode 8.3 以后的版本中,对于
build_app
的export_method
的值,需要根据开发者的打包类型进行设置,可选的值有:app-store
、ad-hoc
、development
、enterprise
。对于 Xcode 8.3 以下的版本,则不需要设置export_method
。
打包并自动上传 App 到蒲公英
经过以上配置后,就可以使用 Fastlane 来打包 App,并自动上传到蒲公英了。在终端下,定位到项目所在目录,输入以下命令即可:
fastlane beta
在成功的情况下,可以看到类似下面的信息:
image进阶用法
您也可以设置 App 上传到蒲公英时,设置密码:
lane :beta do
build_app(export_method: "ad-hoc")
pgyer(api_key: "7f15xxxxxxxxxxxxxxxxxx141", user_key: "4a5bcxxxxxxxxxxxxxxx3a9e", password: "123456", install_type: "2")
end
设置一个版本更新时的描述信息:
lane :beta do
build_app(export_method: "ad-hoc")
pgyer(api_key: "7f15xxxxxxxxxxxxxxxxxx141", user_key: "4a5bcxxxxxxxxxxxxxxx3a9e", update_description: "update by fastlane")
end
错误排查
- 出现错误时,首先请升级到最新版本的 Fastlane、Xcode、和 fastlane-plugin-pgyer 插件,然后进行重新尝试;
- 如果是 Fastlane 本身的问题,可以尝试卸载 Fastlane 后,重新安装。