00 / 00

改成自己的 App

把 01MVP Desktop 模板改成真实桌面应用的步骤清单

这篇按实际顺序走。先让模板跑起来,再改身份和品牌,最后接业务能力、签名、更新和发布。

1. 跑通模板

先完成 快速开始

vpr @01mvp/product#dev
vpr @01mvp/desktop#dev
vpr @01mvp/desktop#tauri:dev

确认:

  • 浏览器预览能打开
  • Tauri 原生窗口能打开
  • API status 可用
  • 登录和 profile API 可用
  • 设置能保存

2. 改应用身份

修改:

products/01mvp/apps/desktop/src-tauri/tauri.conf.json

至少改:

  • productName
  • identifier
  • version
  • 窗口 title
  • bundle description

建议先规划 dev 和 production 两套 identifier:

com.example.app.dev
com.example.app

identifier 确定后,尽量不要再改。

3. 改品牌和图标

替换:

products/01mvp/apps/desktop/src-tauri/icons/icon.png
products/01mvp/apps/desktop/src/App.tsx
products/01mvp/apps/desktop/src/components

注意:

  • 图标最好从统一品牌源文件生成
  • UI 先保持模板结构,不急着加复杂业务
  • 不要把其他产品的 UI 包复制进 01MVP 模板

4. 配置后端地址

桌面端:

VITE_DESKTOP_SERVER_URL="https://example.com/api"
VITE_DESKTOP_WEB_URL="https://example.com"

服务端:

DESKTOP_ALLOWED_ORIGINS="https://example.com,tauri://localhost,http://tauri.localhost"

本地、staging、production 要分别检查。不要把 tunnel 或 localhost 打进正式包。

5. 跑通登录和 API

检查:

  • health.live 可用
  • 登录成功
  • account.profile 可用
  • 退出后不显示旧用户
  • 401 状态有合理 UI

如果你加了自己的 API,继续通过 @01mvp/api 和 oRPC client 接入,不要直接 import Web app 内部模块。

6. 加桌面专属能力

按需求添加:

能力先看哪篇
文件读写、托盘、外部打开Runtime 与权限
本地配置、缓存、Keychain本地存储
macOS 麦克风、辅助功能、输入监听macOS 签名与权限
自动更新自动更新

新增系统能力时,先封装 src/runtime,再接 UI。

7. 写测试

至少补这几类:

  • env 和配置测试
  • API client URL 测试
  • runtime fallback 测试
  • 本地偏好迁移测试
  • 后端 origin/auth 边界测试

运行:

vpr @01mvp/desktop#test
vpr @01mvp/desktop#type-check
vpr @01mvp/desktop#lint

跨到后端后跑:

vpr @01mvp/product#test

8. 准备签名和发布

发布前要准备:

  • macOS Developer ID 和 notarization
  • Windows code signing certificate
  • release channel 和版本号策略
  • 下载页或 release assets
  • 自动更新 endpoint
  • 崩溃或错误反馈入口

先跑本地安装包:

vpr @01mvp/desktop#tauri:build

再在干净机器上安装测试。

9. 发布前最终检查

  • 应用名、图标、版本号正确
  • API 指向 production
  • 登录、profile、付费状态可用
  • app data 目录不会和 dev 版本混用
  • 签名、公证、安装包符合平台要求
  • 自动更新检查不会阻塞启动
  • 文档和下载页没有旧名称或旧域名
  • disttarget、签名私钥没有提交进仓库

这篇文档有问题?