/** * 开发态跑的是 node_modules 里的 Electron.app,菜单栏名称来自 Info.plist。 * 把 CFBundleName / CFBundleDisplayName 改成产品名(仅 macOS;npm i 后需再跑一次)。 */ import { createRequire } from 'module' import { execFileSync } from 'child_process' import { existsSync } from 'fs' import { dirname, join } from 'path' import { platform } from 'os' const APP_NAME = 'LoveLiveMusicPlayer' if (platform() !== 'darwin') { process.exit(0) } const require = createRequire(import.meta.url) let electronBinary try { electronBinary = require('electron') } catch { process.exit(0) } const plist = join(dirname(String(electronBinary)), '..', 'Info.plist') if (!existsSync(plist)) { console.warn('[patch-electron] Info.plist 未找到:', plist) process.exit(0) } for (const key of ['CFBundleName', 'CFBundleDisplayName']) { execFileSync('plutil', ['-replace', key, '-string', APP_NAME, plist]) } // 促使 Launch Services 刷新缓存 execFileSync('touch', [join(dirname(plist), '..')]) console.log(`[patch-electron] 开发态应用名 → ${APP_NAME}`)