00 / 00

配置桌面应用

配置 01MVP Desktop 的应用身份、环境变量、窗口、图标、CSP 和后端 origin

把模板改成自己的桌面应用时,先改身份和配置,再加业务功能。身份配置不稳定,会影响登录、权限、签名、自动更新和用户本地数据目录。

配置总清单

桌面端比 Web 多了系统身份、安装包、权限和更新链路。用户准备好这张表里的材料,AI 就能按配置文件逐项落地和验收。

配置项用户需要准备写到哪里什么时候必须完成
应用身份product name、version、bundle identifiertauri.conf.json第一次原生窗口和打包前
Web/API 地址本地、preview、production 三套地址.env.local、CI env、构建环境登录和 API 调试前
后端 originTauri dev / production originproducts/01mvp/packages/config/.env 和生产环境登录、CORS、Better Auth 前
本地数据身份固定 identifier 和 app data 策略Tauri 配置和本地偏好开始给用户测试前
系统权限麦克风、快捷键、辅助功能、文件访问等场景Tauri capabilities、macOS 权限说明功能接入前
自动更新更新域名、下载存储、updater 公钥、版本策略tauri.conf.json、发布服务、CI secretpreview 或正式分发前
签名和公证Developer ID、notarization、Windows code signing平台后台、证书、CI secret面向真实用户下载前
发布资料下载页、版本号、反馈入口、隐私政策Web 页面和安装包元信息内测和公开发布前

不要把签名私钥、notarization 密钥、updater 私钥或服务端 secret 写进前端公开变量或仓库。

需要改的配置文件

文件负责什么
products/01mvp/apps/desktop/package.json包名、脚本、依赖
products/01mvp/apps/desktop/.env.local本地桌面前端公开变量
products/01mvp/apps/desktop/src-tauri/tauri.conf.jsonTauri product name、identifier、窗口、CSP、bundle
products/01mvp/apps/desktop/src-tauri/icons/icon.png打包图标
products/01mvp/packages/config/.env后端允许的桌面 origin

应用名和 identifier

tauri.conf.json 里最重要的是这三项:

{
  "productName": "01MVP Desktop",
  "version": "0.1.0",
  "identifier": "com.01mvp.desktop.template"
}

改成自己的应用时:

字段示例说明
productNameAcme Studio用户看到的应用名
version0.1.0安装包和自动更新使用的版本号
identifiercom.acme.studiomacOS、Windows、Tauri app data 和签名都会用到

identifier 一旦开始分发,不要随便改。改了以后,用户系统会把它当成另一个应用,本地数据、权限记录和更新链路都会受到影响。

开发版和正式版

推荐开发版和正式版分开:

开发版正式版
应用名Acme Studio DevAcme Studio
identifiercom.acme.studio.devcom.acme.studio
API本地或 stagingproduction
签名Apple Development 或 ad-hocDeveloper ID / Windows code signing

这样可以避免开发权限、测试账号和正式用户数据互相污染。

桌面端公开环境变量

桌面端前端读取:

VITE_DESKTOP_APP_NAME="Acme Studio"
VITE_DESKTOP_SERVER_URL="http://localhost:7001/api"
VITE_DESKTOP_WEB_URL="http://localhost:7001"

读取和校验逻辑在:

products/01mvp/apps/desktop/src/config/desktop-env.ts

规则很简单:

  • VITE_DESKTOP_SERVER_URL 必须指向 /api
  • VITE_DESKTOP_WEB_URL 是网页入口,不带 /api
  • 公开变量会进入前端 bundle,不放服务端 secret

后端 origin

后端的 CORS 和 Better Auth trusted origins 使用:

DESKTOP_ALLOWED_ORIGINS="http://localhost:7410,http://127.0.0.1:7410,tauri://localhost,http://tauri.localhost"

它被两个地方使用:

products/01mvp/apps/web/src/server/hono.ts
products/01mvp/packages/auth/src/index.ts

本地开发通常保留默认值即可。生产环境如果使用自定义 Tauri origin 或 webview origin,要把它加进去。

窗口配置

窗口配置在 tauri.conf.json

{
  "app": {
    "windows": [
      {
        "label": "main",
        "title": "01MVP Desktop",
        "width": 1180,
        "height": 780,
        "minWidth": 1024,
        "minHeight": 720
      }
    ]
  }
}

模板默认按桌面工作台设计,不专门做窄屏。你可以根据产品类型调整尺寸:

产品类型建议
工具型工作台保持 1100px 以上宽度
小型菜单栏工具单独设计小窗口,不沿用工作台布局
编辑器或内容工具增大默认高度,保留可调整窗口

CSP

桌面端的 CSP 也在 tauri.conf.json。生产环境只允许必要来源:

{
  "security": {
    "csp": "default-src 'self'; connect-src ipc: http://ipc.localhost https://start.01mvp.com http://localhost:* http://127.0.0.1:*; img-src 'self' asset: data:; style-src 'self' 'unsafe-inline'; script-src 'self'; object-src 'none'; frame-ancestors 'none'"
  }
}

新增 API 域名、图片 CDN 或更新服务时,要同步检查 CSP。不要为了省事把所有来源都放开。

图标

当前模板图标在:

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

改图标时,尽量从一份品牌源文件生成所有平台资源。不要分别手工改 macOS、Windows、Linux 的图标,否则很容易出现发布包和网页品牌不一致。

配置完成后检查

vpr @01mvp/desktop#type-check
vpr @01mvp/desktop#test
vpr @01mvp/desktop#build
vpr @01mvp/desktop#tauri:check

如果改了文档路径或 sidebar,再跑:

vpr @01mvp/web#docs:check-links

复制给 AI

请帮我检查 01MVP desktop 的配置是否已经适合 development / preview / production 三个阶段。

我会提供应用名、bundle identifier、版本号、生产 Web/API 地址、是否需要托盘、是否需要系统权限、是否需要自动更新、目标分发平台。
请你只修改必要配置,并列出还缺哪些证书、账号、发布域名、更新端点或 CI secret。
不要把签名私钥、updater 私钥、notarization 密钥或服务端 secret 写进仓库。

这篇文档有问题?