You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS平台Electron应用升级后Dock与应用目录名称未更新问题求助

解决Electron应用重命名后Dock/Finder名称不更新的问题

我之前也遇到过类似的Electron应用重命名后系统显示异常的问题,结合你的情况,给你几个实用的排查和解决方向:

1. 优先检查electron-builder的核心配置

手动修改InfoPlist.strings经常会被electron-builder的配置覆盖,这是最常见的原因。你需要确保在构建配置文件(比如package.json或electron-builder.yml)里更新了所有相关字段:

// package.json中的build配置示例
"build": {
  "appId": "com.yourdomain.me", // 必须替换掉旧的dd的appId
  "productName": "me", // 全局产品名称
  "mac": {
    "displayName": "me", // macOS专属显示名称
    "bundleVersion": "1.0.0", // 确保版本号高于旧应用
    "category": "public.app-category.utilities"
  }
}

构建完成后,右键me.app→显示包内容→Contents/Info.plist,确认其中的CFBundleName、CFBundleDisplayName、CFBundleIdentifier都是新的名称和ID,如果还是旧值,说明配置没生效,检查配置文件的语法层级是否正确。

2. 清理系统缓存与旧应用残留

Mac系统会缓存应用的元数据,残留的旧数据会导致显示异常:

  • 完全退出应用(右键Dock图标→退出,或用Activity Monitor杀掉所有相关进程)
  • 删除旧应用的缓存目录:~/Library/Caches/com.yourdomain.dd(替换成旧的appId)
  • 删除旧应用的配置目录:~/Library/Application Support/dd
  • 从Finder应用目录彻底删除旧的dd.app,重新安装新的me.app
  • 强制刷新Dock缓存(无需重启电脑):
    killall Dock
    

3. 修正InfoPlist.strings的格式与位置

如果坚持用InfoPlist.strings自定义多语言名称,要注意两个关键点:

  • 路径正确:比如中文环境下放在resources/zh-CN.lproj/InfoPlist.strings,英文放在en.lproj下
  • 文件编码必须是UTF-16:macOS的strings文件不识别UTF-8,你可以用Xcode打开文件检查编码,或用终端转换:
    iconv -f UTF-8 -t UTF-16 InfoPlist.strings > InfoPlist.strings.new
    mv InfoPlist.strings.new InfoPlist.strings
    

4. 极端情况:重置LaunchService缓存

如果上述方法都没用,可能是系统的LaunchService缓存混乱了,执行以下命令重置:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

执行完后重启电脑,系统会重新索引所有应用。

内容的提问来源于stack exchange,提问作者mqliutie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 17:57:48