一、需求来源
项目中遇到多版本并行开发的场景,随着打包次数的增多感觉越来越浪费时间。因为公司之前没有 Andriod 相关的自动化构建流程工具,每次都是打完包然后打开目录 /build/app/outputs/flutter-apk 拖拽 apk 到 teambition 文件目录中,测试从此下载完成整个安装流程。随基于fastlane 给 android 实现自动化构建流程,即方便开发又方便测试,提高整团队个工作效率,项目越大收益越大。因为做原生开发时 iOS 已经开发好了,基于此基础半天时间搞定。
效果如下:
二、目录结构
```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
三、使用步骤
- 配置 .env 文件变量
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 中的插件
```
fastlane install_plugins
```
3. 运行命令(打包,上传蒲公英,钉钉机器人发消息一条龙)
fastlane develop
四、总结
1、因为代码是我已经调试好,大家直接使用即可,能提高自己效率很酷,能提高整个团队效率是超酷。
2、如果需要进一步定制,大家需要学习一点 ruby 和 shell 基础知识,git 相关命令有一个 git pro 的电子书可参考,非常详细。
3、本文主要是安卓的源码展示,iOS 的代码也是现成的,整个效果和本文相似,仅是一些平台细节的区别,看源码即可。
原文链接:https://juejin.cn/post/7332318008243552293 作者:SoaringHeart