看懂 VSCode 发布中心后,下一步该把 App 发版交给 CLI 了

上一篇我们把 VSCode 发布中心的几个关键区域拆开了。

这一篇解决的是另一种痛苦:

同一套 App 发版动作,你为什么还要一遍遍亲手点?

第一次理解流程可以靠界面。

但只要开始重复,你就会发现:

  • 每次都点同样的按钮
  • 每次都填同样的更新说明
  • 每次都盯同样的进度
  • 每次都担心是不是漏了平台

这时候真正该接手的,不是鼠标。

而是一条可以反复执行的命令。

VSCode 适合看懂流程,CLI 适合重复执行

当你开始经常发版、团队协作、想接入 CI/CD,命令行会更顺。

说白了:

界面适合理解流程,命令适合复用流程。

3 分钟开跑

第 1 步:安装 app-ship

app-ship 是独立上传引擎,不依赖 Flutter,也不依赖 VSCode。

bash 复制代码
npm install -g @huoye/app-ship
app-ship platforms
app-ship init

第 2 步:生成 app-ship.yaml

配置文件生成后,把平台配置收回来,别再散在文档和聊天记录里。

yaml 复制代码
publish:
  pgyer:
    enable: true
    apiKey: '${PGYER_API_KEY}'

第 3 步:密钥放进项目级环境文件

别把明文密钥写死。

bash 复制代码
PGYER_API_KEY=your-api-key
HUAWEI_CLIENT_ID=your-client-id
HUAWEI_CLIENT_SECRET=your-client-secret
HUAWEI_APP_ID=your-app-id

然后在终端里加载它:

bash 复制代码
set -a
source ./.env.local
set +a

如果你要给这一步配图,最稳的做法是直接做成左右分屏:

  1. 左边打开 app-ship.yaml,把 ${VAR_NAME} 引用露出来
  2. 右边打开终端,展示 source ./.env.local 或 set -a 这类加载命令
  3. 画面底部加一句短标语:密钥不要进仓库
  4. 统一用亮色主题,字体放大到手机上也看得清

第 4 步:本地先跑通一次

bash 复制代码
app-ship upload -c app-ship.yaml -f ./app-release.apk --platform pgyer,huawei --changelog "修复已知问题"

关键不是命令短。

而是以后每次发版,不用再把同一套动作重新点一遍。

第 5 步:把同一条命令接进 CI/CD

本地跑通后,几乎可以原样搬进流水线:

yaml 复制代码
- run: npm install -g @huoye/app-ship
- run: app-ship upload -c app-ship.yaml -f ./app-release.apk --platform pgyer,huawei --changelog "CI Build"

常用命令速查

场景 命令
查看平台 app-ship platforms
按配置上传 app-ship upload -c app-ship.yaml -f ./app-release.apk
指定平台 app-ship upload -c app-ship.yaml -f ./app-release.apk --platform pgyer,huawei
调试日志 app-ship upload -c app-ship.yaml -f ./app-release.apk --platform pgyer --verbose

CI/CD 先别一口吃成胖子:本地单平台、本地多平台、CI 单平台、CI 多平台,一步步来。

怎么算跑通

满足这几条,就算命令链路跑通了:

  • 本机能执行 app-ship upload
  • 至少一个目标平台返回可用结果
  • app-ship.yaml 已改成环境变量引用
  • 同一条命令能搬进 CI/CD

CLI 真正值钱的地方,不是更极客。

而是把一次能跑通的事,变成每次都能复用的事。

如果你也做 App 发版,你更想先把哪一步从"手点"改成"命令"?

是本地上传、打 tag 自动发版,还是按平台拆分触发?

留言告诉我,我后面把最痛的那一步继续拆开写。

相关推荐
Java后端的Ai之路6 小时前
SSE 接口设计 vs Agent UI:四个开源项目,把「模型吐词」和「界面更新」拆开后,我看懂了差距
ui·开源·sse·agui·agentui
千桐科技6 小时前
数据中台 ETL 编排实践:基于 qData 开源版实现数据接入、转换与调度执行
数据仓库·开源·etl
也非非也7 小时前
DeepSeek没发公告,但它把Agent装进了你的电脑
人工智能·开源·agent·deepseek·dsh
分布式存储与RustFS8 小时前
纠删码到底吃掉了多少容量:EC:4、EC:8 的利用率与容错怎么算
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
沐言Agent10 小时前
太惊艳了!2 个让你的 Codex 狠狠省 Token 的开源项目,必须收藏!
人工智能·ai·开源
程序员清风10 小时前
vLLM 实战:用 OpenAI 兼容接口部署本地大模型推理服务
开源·github·vllm
狗凯之家源码网11 小时前
PHP 开源 IM 即时通讯系统效果实测与功能展示
开发语言·开源·php
天天向上29111 小时前
Spring AI 实战:14 个踩坑记录,其中一个让我的测试全绿但产品是坏的
java·开源
枫叶丹414 小时前
AI 的记忆不是数据库:长期个性化如何避免过期与污染
人工智能·chatgpt·开源·agent·codex
浅安的邂逅15 小时前
260926-OpenAI 急停最强模型训练:智能体借 DNS 漏洞联网,还泄露了 GitHub token
人工智能·chatgpt·开源·openai·ai日报