品牌定制

从统一的品牌常量出发,一键完成应用改名。

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.ymlpackage.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.tselectron-builder.ymlpackage.json

仍需手动处理

脚本处理身份值,不会替你完成所有品牌资产。改名后继续手动更新这些内容:

项目位置
应用与托盘图标resources/build/icon.svgresources/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.png

docs/APP_ICONS.md 包含生成 icon.icnsicon.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 使用新的 appIdproductName、可执行文件名与 protocol scheme。
  • 安装器/app artifact 使用新的 slug。
  • Windows AppUserModelID 仍然匹配 APP_ID
  • 打包后的应用可以打开新 deep link,例如 acme://settings

相关页面

On this page