品牌定制
使用 rebrand 脚本一次性完成应用品牌替换。
Soar Tauri 有意保留了一套明确的模板身份:产品名 Soar Tauri、应用 ID
com.soarstarter.tauri、slug soar-tauri,以及深链 scheme
soar-tauri://。请在发布安装包、登记回调地址或为真实用户写入钥匙串之前完成替换。
品牌信息的来源
应用代码统一从 shared/constants.ts 导入品牌信息;无法导入 TypeScript
的静态配置则由 scripts/rebrand.mjs 同步更新。
Prop
Type
一次完成主要替换
所有参数均为可选项,只会修改你明确传入的值。未指定时,--homepage
取 --repo,--license 则取该仓库中的 LICENSE 地址。
pnpm rebrand \
--name "Acme" \
--app-id com.acme.app \
--slug acme \
--scheme acme \
--email support@acme.com \
--repo https://github.com/acme/app \
--homepage https://acme.example \
--license https://acme.example/license使用 --dry-run 只预览将要修改的文件:
pnpm rebrand --name "Acme" --scheme acme --dry-run| 参数 | 修改内容 |
|---|---|
--name | 显示名称、Tauri 产品名与窗口名、Cargo 描述 |
--app-id | APP_ID 和 Tauri identifier |
--slug | PRODUCT_SLUG 和 npm 包名 |
--scheme | PROTOCOL_SCHEME 和 Tauri 深链注册 |
--email | SUPPORT_EMAIL |
--repo | REPO_URL 和 package 仓库;未覆盖时也用于推导主页与许可证 |
--homepage | HOMEPAGE_URL |
--license | LICENSE_URL |
脚本只会联动改写四个文件:shared/constants.ts、
src-tauri/tauri.conf.json、src-tauri/Cargo.toml 和 package.json。
手动收尾
脚本负责已知的身份字段,不会替换所有品牌素材和部署配置。
| 项目 | 需要完成的工作 |
|---|---|
| 应用图标 | 运行 pnpm tauri icon path/to/1024x1024.png,重新生成 src-tauri/icons/。 |
| 托盘图标 | 编辑源 SVG,并按 docs/APP_ICONS.md 重新生成 resources/build/tray/ 下的 PNG。 |
| 截图与翻译 | 替换演示素材以及 src/locales/{en,zh}/ 中带有产品身份的文案。 |
| Supabase 与支付回跳 | 在 Supabase Auth 中放行新 scheme,并让支付成功页返回 acme://billing 一类地址。 |
| 更新服务 | 替换 src-tauri/tauri.conf.json 中的更新端点与 minisign 公钥,并为自己的源配置 UPDATE_SERVER_URL。 |
| 钥匙串身份 | 手动修改 src-tauri/src/commands/secure.rs 的 SERVICE_NAME;当前脚本不会替换其中的 com.soarstarter.tauri。请在用户保存会话前完成。 |
| 其余原生元数据 | 检查 tauri.conf.json 中的 publisher、homepage、copyright 和描述;src-tauri/tauri.macos.conf.json 也有独立的窗口标题。 |
| 开源声明 | 检查 CREDITS.md 及各依赖许可证。其中提到的来源署名值得保留,但对应 MIT 许可证并不强制要求。 |
应用发布后再修改钥匙串服务名,会让旧条目看起来像是“丢失”。对已有用户的产品,
应设计迁移流程,而不是直接重命名 SERVICE_NAME。
验证
完成手动项目后,运行应用并制作一个正式安装包:
pnpm format:check
pnpm lint:check
pnpm typecheck
pnpm test
pnpm tauri build检查窗口与“关于”页面名称、安装包名称、bundle identifier、Dock/任务栏和托盘图标、
钥匙串服务,以及 acme://settings 这样的打包应用深链。最后搜索不准备保留的模板身份:
rg "Soar Tauri|soar-tauri|com\.soarstarter\.tauri" \
shared src src-tauri package.json