嘘��App发版可以这么爽,一般人我不告诉他
本文是「摸鱼指南 · 告别手动发版」系列第 1 篇。
系列目录:第 1 篇:总览(本文)第 2 篇:VSCode 插件实战第 3 篇:CLI 实战与 CI/CD第 4 篇:8 平台 API 踩坑
嘘🤫跟你说个事,别声张
上个月发版日,我和隔壁工位同时开始发版。
产品经理丢来一句:”测试过了,今天发。”
我打开电脑,8 个应用商店排着队等我伺候——
华为:登我后台!传 APK!填更新说明!
小米:该我了!OPPO:下一个我!vivo:别忘了我!
应用宝:我也要——App Store:IPA 呢?鸿蒙:我也要传!蒲公英:测试催链接了!
“这种场面我还是可以控制的。”
然后——华为上传失败了,重来。小米密码忘了,等验证码。OPPO 版本号重复,重新打包。iOS 的 Transporter 卡在 80% 不动。
2 小时后,我终于把链接发群里。回头一看——隔壁已经在刷手机了。
“你传完了?””早传完了,10 分钟的事。”
他打开 VSCode,勾了 8 个平台,点了”开始”,去接了杯水。回来的时候全传完了,链接自动汇总好了。
不是他比我快,是他根本没在手动做这件事。

痛在哪
每次发版你在重复的动作:登录后台 → 找应用 → 传包 → 填说明 → 等进度 → 复制链接 → 汇总发群。7 步,0 技术含量,×8 个平台。
再想想密码管理——华为的上次改过、小米的存在哪个备忘录、OPPO 要手机验证码但手机不在手边、App Store 的专用密码过期了吗……
8 套账号,每套都可能忘密码,每套登录方式都不一样。没有任何技术含量,却每次消耗你 2 小时。
一个被忽略的事实
你用 Flutter,同事用 React Native,隔壁组写原生。框架不同,但有一件事完全一样:上传到应用商店的痛苦。
打包是框架的事——flutter build、./gradlew assembleRelease、xcodebuild,各管各的。
但上传?不管 APK 是 Flutter 编译的还是 Kotlin 写的,传到华为商店登的是同一个后台,填的是同一份字段,等的是同一根进度条。
打包和上传是两件事。打包跟框架绑定,上传跟框架无关。有包就能传,不问你用什么写的。
我们做了什么
对接了 8 个应用商店的 API,把认证、上传、提审全部封装了。不吹,直接看验证状态:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OAuth2、RSA、HMAC-SHA256……你不需要知道这些。填一次密钥,剩下的全部由工具处理。

三种发布模式
|
|
|
|
| 全量流水线 |
|
|
| 仅构建 |
|
|
| 仅上传 |
|
所有 App 开发者 |
不是 Flutter 开发者?没关系,“仅上传”就是为你设计的。React Native 编译完拿到 APK,选文件直接传。原生、鸿蒙同理。

上传之外
密钥管理:配一次,下次自动加载,存在本地不上传。每个平台旁有帮助按钮,告诉你密钥在哪申请。
失败重试:8 个平台同时传,某一个失败不影响其他 7 个,点一下只重传那一个。网络超时自动重试,认证错误不浪费时间。
安装包自动识别:选了 APK 自动解析包名版本号,IPA 自动解析 Info.plist,HAP 自动读 module.json。不用手动填。
结果汇总:上传完成后所有链接一键复制,蒲公英自动生成二维码,丢群里收工。

上传后各平台会怎样
|
|
|
|
|
|
|
|
|
|
|
submit |
|
|
直接提交审核 |
|
|
|
直接提交审核 |
|
|
|
|
|
|
|
|
|
注意:小米和应用宝上传即提审,这是平台 API 决定的。华为/鸿蒙最灵活,可配 draft 或 submit。
手动 vs 自动
|
|
|
|
| 耗时 |
|
|
| 密钥 |
|
|
| 上传 |
|
|
| 失败 |
|
|
| 链接 |
|
|
| 适用 |
|
|
开始使用
VSCode 插件(推荐):扩展市场搜索 “Flu CLI” → 安装 → 右键项目 → Flu: 发布中心


CLI 命令行:
npm install -g @huoye/app-shipapp-ship init # 生成配置文件app-ship upload -c app-ship.yaml -f app-release.apk
npm 库:
import { createUploadManager } from'@huoye/app-ship'const manager = createUploadManager({ maxConcurrent: 3 })await manager.uploadToMultiplePlatforms('./app.apk', config, metadata)
三种方式,底层同一套引擎,上传能力完全一致。
这个系列会讲什么
|
|
|
|
| 第 2 篇 |
|
|
| 第 3 篇 |
|
|
| 第 4 篇 |
|
|
发版这件事,不该消耗你的脑力,它只该消耗带宽。
觉得有用?
-
• 👍 点赞 — 让更多被发版折磨的人看到 -
• ⭐ 收藏 — 下个发版日翻出来用 -
• 💬 评论 — 你被哪个商店折磨得最惨?
关注公众号「火叶」,第一时间获取系列更新与 API 踩坑干货。
「摸鱼指南 · 告别手动发版」 · 第 1 篇官方文档 · 源码仓库
夜雨聆风