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

自制Mac App Bundle图标Finder正常Dock显示异常如何修复

问题原因

你看到的带网格、对角斜线、同心圆的缝纫垫样式图标,是macOS Monterey及以上版本Dock的图标资源匹配失败占位符,该占位仅代表图标读取异常,不代表应用损坏,和你观察到的应用功能正常的现象完全吻合,核心触发原因有两个:

  • 配置冲突:Info.plist中冗余添加了CFBundleIconName键,该键仅适配使用Xcode Asset Catalog管理图标、经过正规签名的应用。Dock读取图标时会优先匹配该键对应的内置图标资源,你手动打包的脚本App没有对应Asset资源,匹配失败后不会自动降级读取CFBundleIconFile指向的icns文件,直接渲染占位图标。而Finder的图标读取逻辑优先级不同,会直接扫描路径下的icns文件,因此访达中图标显示正常。
  • 缺少必填配置:当前Info.plist缺失CFBundleExecutable、CFBundlePackageType两个App Bundle必填核心键,虽然系统可通过目录结构识别到可执行脚本并允许运行,但会导致Dock对应用类型的识别异常,进一步触发图标渲染问题。
修复步骤
  1. 修正Info.plist配置:删除冗余的CFBundleIconName键值对,补充缺失的必填键,修正后的完整配置如下,注意将CFBundleExecutable的值替换为你存放在Contents/MacOS目录下的启动脚本的实际文件名,不要加路径前缀:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDisplayName</key>
    <string>Arch Linux</string>
    <key>CFBundleIdentifier</key>
    <string>me.bantling.ArchLinux</string>
    <key>CFBundleVersion</key>
    <string>1</string>
    <key>CFBundleIconFile</key>
    <string>AppIcon</string>
    <key>CFBundleExecutable</key>
    <string>替换为你的启动脚本文件名</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
</dict>
</plist>
  1. 清理系统图标缓存让配置生效:
    • 先将Dock上的异常应用图标移除,关闭所有访达窗口
    • 打开终端依次执行以下命令,执行sudo命令时需要输入开机密码,输入过程终端不会显示字符,正常输入后回车即可:
    sudo rm -rf /Library/Caches/com.apple.iconservices.store
    killall Dock
    killall Finder
    
    • 等待Dock和访达自动重启完成
  2. 将修正后的App Bundle重新拖入Dock,即可正常显示自定义图标。
校验项

如果操作后仍有异常,逐一检查以下配置:

  • AppIcon.icns确实存放在Contents/Resources路径下,文件权限为所有用户可读,文件名与CFBundleIconFile配置值完全匹配
  • Contents/MacOS目录下的启动脚本已添加可执行权限,可通过终端执行chmod +x 脚本完整路径补充权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:39:16