Flutter 进阶:基于 fastlane 的项目自动化部署

一、需求来源

项目中遇到多版本并行开发的场景,随着打包次数的增多感觉越来越浪费时间。因为公司之前没有 Andriod 相关的自动化构建流程工具,每次都是打完包然后打开目录 /build/app/outputs/flutter-apk 拖拽 apk 到 teambition 文件目录中,测试从此下载完成整个安装流程。随基于fastlane 给 android 实现自动化构建流程,即方便开发又方便测试,提高整团队个工作效率,项目越大收益越大。因为做原生开发时 iOS 已经开发好了,基于此基础半天时间搞定。

效果如下:

二、目录结构

go 复制代码
```dart
├── fastlane
│   ├── Fastfile (主文件)
│   ├── Pluginfile (插件)
│   ├── README.md
│   ├── actions (自定义动作)
│   │   ├── dingdingtalk_robot.rb(让钉钉机器人发消息)
│   │   ├── dingslack_robot.rb(让slack机器人发消息)
│   │   ├── git_last_log_dic.rb(获取 git 最后一次提交信息,例如哈希值)
│   │   ├── markdown_desc.rb(获取最后一次log值的 markdown 描述)
│   │   └── yaml_from_path.rb(flutter 的 pubspec.yaml 内容解析)
│   ├── metadata
│   │   └── app_icon.jpg
│   └── report.xml
```dart

三、使用步骤

  1. 配置 .env 文件变量

    dart 复制代码
    app_name 应用名称
    
    IpaDir_Development  = "/Users/*/yl/ipa_development"
    IpaDir_AppStore     = "/Users/*/yl/ipa_appStore"
    两个文件路径需要逐级创建文件夹,直接在 Users目录下是没有权限的,脚本会执行
    
    // Firim 下载链接
    Firim_Shortcut_Link = "http://d.firim.top/*"
    // Pgyer 下载链接
    Pgyer_Shortcut_Link = "https://www.pgyer.com/*"
    // 钉钉机器人 webhook
    Dingtalk_Url        = "*"
    // Slack机器人 webhook
    Slack_Url           = "*"
    // app 图标,机器人发消息会用到
    App_Icon_Local
    ```dart

2.安装 Pluginfile 中的插件

go 复制代码
```
fastlane install_plugins
```
  1. 运行命令(打包,上传蒲公英,钉钉机器人发消息一条龙)

    fastlane develop

四、总结

1、因为代码是我已经调试好,大家直接使用即可,能提高自己效率很酷,能提高整个团队效率是超酷。
2、如果需要进一步定制,大家需要学习一点 ruby 和 shell 基础知识,git 相关命令有一个 git pro 的电子书可参考,非常详细。
3、本文主要是安卓的源码展示,iOS 的代码也是现成的,整个效果和本文相似,仅是一些平台细节的区别,看源码即可。

android-fastlane

ios-fastlane

相关推荐
abigale0340 分钟前
【浏览器 API / 网络请求 / 文件处理】前端文件上传全流程:从基础上传到断点续传
前端·typescript·文件上传·vue cli
Setsuna_F_Seiei1 小时前
AI 对话应用之页面滚动交互的实现
前端·javascript·ai编程
新缸中之脑1 小时前
追踪来自Agent的Web 流量
前端
wefly20172 小时前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
英俊潇洒美少年2 小时前
vue如何实现react useDeferredvalue和useTransition的效果
前端·vue.js·react.js
钛态3 小时前
Flutter for OpenHarmony:mockito 单元测试的替身演员,轻松模拟复杂依赖(测试驱动开发必备) 深度解析与鸿蒙适配指南
服务器·驱动开发·安全·flutter·华为·单元测试·harmonyos
kyriewen113 小时前
给浏览器画个圈:CSS contain 如何让页面从“卡成PPT”变“丝滑如德芙”
开发语言·前端·javascript·css·chrome·typescript·ecmascript
英俊潇洒美少年3 小时前
react19和vue3的优缺点 对比
前端·javascript·vue.js·react.js
~无忧花开~5 小时前
React生命周期全解析
开发语言·前端·javascript·react.js·前端框架·react