看懂 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.localset -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 自动发版,还是按平台拆分触发?

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

相关推荐
fthux8 小时前
装闭 RenoPit 源码解析(04):装修图纸和合同文件上传处理流程
人工智能·ai·开源·github·open source·renopit
带娃的IT创业者10 小时前
Kimi-K3 开源背后:2.8 万亿参数的“暴力美学”与智能体的新拐点
人工智能·开源·大模型·智能体·开源模型·kimi-k3·moonshot ai
圆奋奋11 小时前
FreeRTOS学习(三)- 任务调度模块
学习·开源·freertos
Magic-ZYJ12 小时前
不登录、不联网也能用:我是如何设计一款“本地优先”iOS App 的
ios·app·iphone·研发·独立开发者·心情日记
9527出列12 小时前
Tursm中WebSocket 连接生命周期:建立、保活、断开与重连
开源
冬奇Lab13 小时前
开源项目第182期:Graphify — 把整个代码库变成可查询知识图谱,让 AI 编程助手真正「懂」你的项目
人工智能·开源·资讯
m4Rk_13 小时前
【论文阅读】Agent 记忆机制(34):MemoryBank——用遗忘曲线管理可强化的长期对话记忆
论文阅读·人工智能·学习·开源·github
初禾w-w13 小时前
阿里云开源 UModel 并发起 USS 倡议:构建企业级通用语义标准,重塑 AI 交互底座
人工智能·阿里云·开源·企业ai·对象图语义·语义割裂
奈斯先生Vector13 小时前
AI 辅助线上排障工作台:从故障证据、Codex 协作到可回放修复
人工智能·架构·开源·aigc·midjourney
Whbbit199916 小时前
发布自己的 shadcn-vue 扩展组件,并支持 CLI 安装
前端·开源