如何使用Fastlane徽章插件改善您的Beta部署流程

我们本教程的目标是在应用程序图标上覆盖应用程序版本号,内部版本号和发行类型。 希望这将使您的项目经理和测试人员更容易轻松地识别应用程序版本,而无需转到应用程序设置(或放置在任何位置)。

如果这是您第一次听说Fastlane,那么它基本上是一种工具,可让您自动执行iOS和Android应用程序的Beta部署和发布。

有多种安装Fastlane的方法。 您可以使用Homebrew,Rubygems或安装程序脚本进行安装。 任一种都可以。

  $〜宝石安装快车道 

如果您已经熟悉创建自己的方案和配置,请跳至下一部分

安装Fastlane之后,我们将根据上表为构建环境创建新的方案和配置。

要为登台构建创建新的配置,只需复制Debug配置并将其重命名为Debug Staging 。 然后复制Release配置并将其重命名为Release Staging

对于应用商店配置,您只需复制Release配置并将其重命名为App Store 。 而已。

然后,编辑方案以使用新创建的配置。 暂存方案将使用“ Debug StagingRelease Staging配置,而App Store方案将使用App Store配置。

对您指定的每个方案重复上述步骤。 请记住,通过选中共享复选框将方案设置为共享方案。 否则,您的方案不能在Xcode之外使用,也不能在git中跟踪。

如果您已经熟悉Fastlane,请跳到下一部分

要在项目上初始化Fastlane,请在终端中运行以下命令。

  $〜cd / your-project#确保您在项目根目录中 
$〜fastlane初始化

Fastlane然后将提示您几个问题,以帮助您快速设置项目FastfileAppfile 。 如果您搞砸了,请不要担心,因为稍后可能会对其进行更改。

创建快速通道

Fastlane使用通道定义部署工作流程。 在本教程中,我们将创建三个不同的通道。 用于开发构建的alpha通道,用于暂存构建的beta通道以及用于生产(应用商店)构建的store通道。

通过此设置,您只需运行以下命令即可使用Fastlane。

  $〜fastlane alpha#运行Alpha通道 
$〜fastlane beta#运行beta通道
$〜fastlane store#运行商店通道

要自动增加内部版本号和版本号,我们必须确保您的项目正在使用Apple Generic版本控制系统。 您可以阅读Apple的官方文档以了解更多详细信息。

我们的计划是根据git commit的数量设置项目的内部版本号。 因此,将以下内容添加到beforefile中的before_all 。 在before_all任何通道之前,将执行before_all块。

  before_all做 
#获取git提交的次数
build_number = number_of_commits(全部:true)
#根据git commits增加项目内部版本号
build_number(build_number:build_number)
结束

要获得Fastlane中的项目版本号,请在before_all块中使用以下操作。

  before_all做 
版本号= get_version_number(
xcodeproj:“ ToyFastlaneAppIcon.xcodeproj”)
...
结束

重要的是要记住,每次运行badge插件时,都会根据当前图标为应用程序图标生成新图像。 您绝对不希望将其提交到git或将新的生产版本推送到应用程序商店,并在您的应用程序图标上显示内部版本号。 那太好笑了。

为了避免这种情况的发生。 将以下内容添加到您的before_allafter_all块中。

  before_all做 
#为确保您不会丢弃任何未提交的更改
sure_git_status_clean
...
结束
... after_all做| lane |
#放弃所有未提交的更改(新的应用程序图标图像)
reset_git_repo
...
结束

如果没有其他失败,您将最终拥有一个自定义的应用程序图标,用于开发和登台。


Fastlane是一个非常好的工具,可以自动化iOS和Android应用程序的部署过程,我敢打赌大多数iOS开发人员已经熟悉或听说过。

我希望通过这个巧妙的小技巧,可以鼓励您开始使用它,并可能帮助您的团队成员节省时间。

您可以在下面查看完整的AppFileFastfilePluginfile 。 我还为该教程创建了一个示例项目,并完成了代码签名,将应用程序部署到TestFlight等。请检查一下。 🚀

完整的AppFile,FastFile和PluginFile

最终的Appfile
最终的Fastfile
最终的插件文件

示例项目回购

faizmokhtar / ToyFastlaneAppIcon

ToyFastlaneAppIcon – Fastlane工作流程示例

github.com


参考文献

  1. https://github.com/HazAT/fastlane-plugin-badge
  2. https://docs.fastlane.tools/actions/badge/
  3. https://fastlane.tools/