品牌定制
从统一的品牌常量出发,一键完成应用改名。
Soar Electron 出厂时保留模板品牌是有意的:app id 是
com.soarstarter.electron,产品名是 Soar Electron,slug 是
soar-electron,deep-link scheme 是 soar-electron://。你的商业应用应尽早替换
这些值,然后验证依赖它们的原生界面。
唯一来源
应用代码从 shared/constants.ts 读取品牌身份。Electron 两个进程与渲染进程都导入
这个文件,而不是在各处硬编码品牌字符串。
Prop
Type
两个静态文件不能导入 TypeScript:electron-builder.yml 与 package.json。rebrand
脚本会让它们与 constants 保持同步。
一次性改名
在模板根目录运行 pnpm rebrand。每个 flag 都是可选的;脚本只会改你传入的值。
pnpm rebrand \
--name "Acme" \
--app-id com.acme.app \
--slug acme \
--scheme acme \
--repo https://github.com/acme/app \
--email support@acme.com加入 --dry-run 可以只预览将会修改哪些文件,而不写入:
pnpm rebrand --name "Acme" --scheme acme --dry-run--homepage 与 --license 也是可选的。省略时会从 --repo 推导。
pnpm rebrand 精确地同步改写三个文件:shared/constants.ts、
electron-builder.yml 与 package.json。
仍需手动处理
脚本处理身份值,不会替你完成所有品牌资产。改名后继续手动更新这些内容:
| 项目 | 位置 |
|---|---|
| 应用与托盘图标 | resources/build/icon.svg 与 resources/build/tray/icon-template.svg;按 docs/APP_ICONS.md 重新生成 PNG、ICNS、ICO。 |
| 截图与演示媒体 | 删除 Showcase 后,替换仍保留的产品截图。 |
| 多语言文案 | 更新 app/locales/{en,zh}/...,让名称、支持文案与 onboarding 文案匹配你的产品。 |
| Supabase redirect URLs | 在 Supabase Authentication URL Configuration 中加入新 scheme,例如 acme://。 |
| Billing success bounce | 将 Creem/Supabase success URLs 指向新 scheme,例如 acme://billing。 |
| 法务内容 | 设置 EULA_URL / EULA_VERSION,替换 license links,并审阅 CREDITS.md。 |
图标
图标源文件位于 resources/build/。只手动编辑 SVG 源文件,然后重新生成派生资产:
cd resources/build
sips -s format png --resampleHeightWidth 512 512 icon.svg --out icon.pngdocs/APP_ICONS.md 包含生成 icon.icns、icon.ico、macOS 菜单栏 template
icons,以及 Windows/Linux 托盘图标的完整命令。打包后的应用由 electron-builder
自动检测 resources/build/icon.{icns,ico,png}。
验证
改名后运行常规质量门禁,并至少做一次 unpacked build:
pnpm format:check
pnpm lint:check
pnpm typecheck
pnpm test
CSC_IDENTITY_AUTO_DISCOVERY=false pnpm build:unpack然后检查原生身份:
- 主窗口标题与 About 页面显示新的
APP_NAME。 electron-builder.yml使用新的appId、productName、可执行文件名与 protocol scheme。- 安装器/app artifact 使用新的 slug。
- Windows AppUserModelID 仍然匹配
APP_ID。 - 打包后的应用可以打开新 deep link,例如
acme://settings。
