adapte macos
This commit is contained in:
36
scripts/patch-electron-dev-name.mjs
Normal file
36
scripts/patch-electron-dev-name.mjs
Normal file
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* 开发态跑的是 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}`)
|
||||
Reference in New Issue
Block a user