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至少改:
productNameidentifierversion- 窗口 title
- bundle description
建议先规划 dev 和 production 两套 identifier:
com.example.app.dev
com.example.appidentifier 确定后,尽量不要再改。
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#test8. 准备签名和发布
发布前要准备:
- 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 版本混用
- 签名、公证、安装包符合平台要求
- 自动更新检查不会阻塞启动
- 文档和下载页没有旧名称或旧域名
dist、target、签名私钥没有提交进仓库
这篇文档有问题?