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
相关产品推荐
相关产品推荐

