macOS appName 不显示最新的停靠栏和应用程序目录

macOS appName not show the newest on the dock and Application directory

我的旧应用程序名称是 dd

现在我们将应用程序重命名为me并通过更新更改图标。

最新的应用程序由 electron-builder 构建,用于跨平台。

应用程序升级后可以 运行 正确,但应用程序名称在 the dockthe Finder Application directory 上没有更改。

Finder 应用程序目录上的图标会立即更改,但在 dock 上必须完成退出并重新启动图标才会更改。

应用名称永远不会更改为新名称。

我已经尝试设置 resource/xx.lproj/InfoPlist.strings 也不起作用。

InfoPlist.strings

"CFBundleDisplayName" = "new app name";
"CFBundleName" = "new app name";

有谁知道这是怎么回事以及如何解决这个问题?

对不起我的英语

终于找到解决方法了

首先在应用程序之后运行 3s 执行以下代码

execSync('mv /Applications/Old.app /Applications/NewName.app')

为什么在运行ning 3s之后(不确定,可能更少或更多)?因为我立即重命名应用程序会崩溃。如果延迟一些时间,它会起作用。

然后我解析~/Library/Preferences/com.apple.dock.plist以通过bundle-identifierfile-label_CFURLString

获取应用程序索引

然后,在child_process

中执行一些命令行代码
// delete the app on the dock by index
execSync(`plutil -remove  persistent-apps.${index} ~/Library/Preferences/com.apple.dock.plist`
execSync(`plutil -insert persistent-apps.${index} -xml "<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>/Applications/NewAppName.app</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>" ~/Library/Preferences/com.apple.dock.plist & killall Dock`)

最后

spawn('open', ['-n', '-a', '/Applications/NewAppName.app']);
app.quit();

此解决方案将使屏幕闪烁一次以进行刷新the dock