00 / 00

桌面应用

用 01MVP Desktop 模板从零创建一个 Tauri 桌面应用

Beta

01MVP 桌面端模板在 products/01mvp/apps/desktop。拿过来就能改名、接后端、登录、调 API、存本地偏好,最后打包成桌面应用。

后端复用 products/01mvp/apps/web 的 Hono,Better Auth 在 /api/auth,oRPC 在 /api/rpc。桌面应用只管前端窗口、Tauri runtime、本地偏好和系统能力。

当前处于 Beta:代码和文档可以用来学习和二次开发,签名、公证、自动更新这些还在迭代。

开做桌面端前先准备

桌面端最容易卡住的地方在目标操作系统、签名、安装包和自动更新。先确认你要发给哪类用户,再准备对应环境。

准备项什么时候需要用途新手提醒
Node.js + Vite Plus开发第一天跑前端、安装依赖、执行脚本和 Web 模板共用基础工具链。
Rust + CargoTauri 原生窗口前编译 Tauri 后端和插件Tauri v2 开发离不开 Rust。
目标平台机器原生验证和打包前macOS、Windows、Linux 的窗口、权限和安装包表现不同做 macOS 安装包请准备 Mac;Windows / Linux 也最好在对应系统验。
Web/API 地址登录和业务功能前桌面端通过 API 复用账号、会员和业务数据本地可先用 http://localhost:7001/api
自己的域名真实分发前建议准备API、隐私政策、下载页、自动更新端点自动更新和用户信任通常都需要稳定域名。
Apple Developer ProgrammacOS 正式签名、公证、Mac App Store 时需要Developer ID、证书、公证、Gatekeeper 信任和 iOS 同一个 Apple Developer Program,官方标价 99 USD / 年。
Windows 代码签名证书正式分发 Windows 安装包前建议准备降低 SmartScreen 和安全警告可以先做内部测试包,公开分发前再处理签名。
更新产物存储做自动更新时需要托管安装包、更新 JSON、签名后的 release 文件可以用 Cloudflare R2、GitHub Releases 或其他稳定文件服务。

什么时候该做桌面应用

适合的场景:

  • 需要托盘常驻、后台运行或全局快捷键
  • 需要读取本地文件、写入 app data、批量处理资料
  • 需要系统剪贴板、打开外部应用、拖拽文件或本地缓存
  • Web 已经有核心业务,但用户希望有一个固定的桌面入口
  • 产品要做自动更新、DMG/EXE 分发或企业内部分发

如果只是想让用户离线打开网页,优先考虑 PWA。一旦走桌面路线,系统权限、代码签名、安装包、自动更新和跨平台测试都得处理。

技术栈

方案
桌面框架Tauri v2
前端React 19 + TypeScript + Vite Plus
样式Tailwind CSS v4
数据请求TanStack Query + oRPC
登录Better Auth,通过现有 Hono 后端
本地能力Tauri commands、capabilities、tray、process、opener
构建Tauri CLI + Cargo

模板里有什么

  • 登录、注册和退出入口
  • 公开 health API 和受保护 profile API 的调用示例
  • 本地偏好读取、保存和重置
  • 浏览器预览 fallback,方便先调 UI
  • Tauri 原生窗口、托盘、single instance 和打开 app data 目录
  • 桌面端独立的 VITE_DESKTOP_* 环境变量校验
  • 后端 DESKTOP_ALLOWED_ORIGINS 配置,接入 CORS 和 Better Auth trusted origins
  • type-check、lint、test、build、tauri dev、cargo check 脚本

模板里没有什么

  • OneSay 的录音、转写、Todo、Widget 或业务 UI
  • 文件系统全量权限、截图、全局快捷键、数据库、Keychain
  • 已配置好的自动更新端点和签名公钥
  • macOS Developer ID 证书、公证、Windows 签名证书
  • 复杂多窗口、命令面板、插件市场或后台任务队列

这些按产品需要自己加。模板只保留商业桌面应用最常见、最容易复用的基础骨架。

推荐阅读顺序

桌面端必懂基础

先理解 Tauri、窗口、本地权限、存储、签名和自动更新。

快速开始

安装依赖,启动 Web/API,打开桌面预览和 Tauri 原生窗口。

项目结构

看懂前端、runtime adapter、Rust commands、Tauri 配置和后端边界。

Vibe Coding

学会把桌面端任务按 UI、runtime、本地能力、发布工程拆给 AI。

桌面应用身份

配置 productName、identifier、图标、版本号和安装包显示名。

改成自己的 App

按顺序替换名称、Bundle ID、图标、后端地址、权限、更新和发布配置。

配置桌面应用

配置 VITE_DESKTOP_*、Tauri identifier、窗口、CSP、图标和服务端 origin。

桌面登录

用 Better Auth、trusted origins 和 WebView session 完成登录。

桌面 API 接入

用 Hono、oRPC 和 TanStack Query 连接 01MVP 后端。

Runtime Adapter

把 React 页面、浏览器 fallback 和 Tauri command 分开。

桌面权限

理解 Tauri capabilities、系统权限和最小权限原则。

本地存储

区分前端状态、app data、本地文件、Keychain 和后端数据。

托盘与窗口

处理托盘菜单、关闭行为、single instance 和后台运行边界。

测试与验收

按代码、浏览器、Tauri 原生窗口和发布前检查四层验收。

构建与分发

生成桌面安装包,理解 macOS、Windows、Linux 的基本分发差异。

自动更新

配置签名更新产物、更新端点和 Tauri updater。

macOS 签名与权限

处理 Apple Development、Developer ID、公证和 macOS TCC 权限。

Skills / 插件推荐

按 Tauri、Rust、UI、发布阶段选择合适的 AI 辅助能力。

这篇文档有问题?