鸿蒙发布打包系统产品系统Vibe Coding

我要开发同款
鸿蒙老李2026年09月15日
6阅读

技术信息

语言技术
VueNode.jsElementUI
系统类型
Web
行业分类
开发工具

作品详情

行业场景

立项原因:团队研发纯血鸿蒙原生App(智慧养老方向),此前打包入口分散在每个开发者的IDE和手动脚本里:版本号靠手改工程文件,产物散落在个人电脑的build目录,测试同学拿包要微信传文件再用hdc手动安装,AGC上传提审全程控制台手动操作——链路断点多、强依赖个人环境、易出错且不可追溯。

行业场景与业务背景:鸿蒙应用迭代节奏快,需频繁产出不同用途的包(联调、内测、稳定性测试、上架),各用途对应的product档位、debug/release模式、HAP/APP产物、版本号、签名要求各不相同,且官方命令行不支持动态传版本号。本项目立项做一个网页化打包平台,把“选参数→出包→归档→分发→上传AGC”整条链路中心化,让测试、产品等非构建专业的成员也能自助、安全、可追溯地出包。

功能介绍

主要功能模块: 1、参数化构建表单:网页选择product档位(default/beta/prod)×debug/release模式×HAP/APP产物类型×用途渠道(联调/内测/稳定性/上架/本地开发),上架渠道强制锁定"prod+release+app"安全组合; 2、版本号管理:表单填版本号,构建期经hvigorfile.ts钩子注入versionCode/versionName,不回写工程文件;默认带入上次成功构建的版本并支持一键"+1"递增; 3、构建任务中心:任务队列(并发=1)、SSE实时日志流、文件占用类失败自动重试、任务可取消; 4、产物中心:构建产物与构建清单(git提交、参数快照、sha256)中心化归档,支持局域网下载、二维码传包; 5、AGC集成:Service Account鉴权,Publishing API上传与提审,邀请测试平台化(测试群组/成员/邀请码管理、隐私政策预检、版本实况、应用简介与测试说明随构建直传AGC); 6、环境状态自检页:工程路径、版本钩子在位、签名就绪等健康链可视化。

项目实现

我负责整体方案调研与架构设计(现状差距分析、八项架构决策)、服务端与前端全部编码实现、AGC Connect API的实测接入,以及与App工程既有构建链路(ci/build.ps1、签名注入机制)的对接和全链路真机验收。

技术栈与架构:前端Vue3+Vite+Element Plus;后端Node.js零npm依赖(node:http自研路由+SSE日志流,JSON文件存储且存储层隔离、可平滑切换SQLite);构建Worker以子进程复用App仓既有构建脚本,签名口令零入仓。

亮点与难点:①官方命令行无版本号参数,通过hvigorfile.ts的afterNodeEvaluate钩子读环境变量改写版本号,不设变量时对原有构建零影响;②AGC无官方CLI,采用“探针法”实测Connect API,把文档与实测响应不一致的坑位逐一回填;③构建前临时改写后端地址、构建后finally整体还原,保证工程git始终干净;④Worker构建目标做成Windows/Linux可切换配置,平台迁服务器零重写。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论