是否可以限制 Mac OSX 上的启动服务(我在 Yosemite 上,但我猜同样适用于旧版本)注册某些应用程序包?
例如,如果我的磁盘上有同一应用程序的多个应用程序包副本,我不希望它们全部出现在它们处理类型的“打开方式”菜单中。我只希望 /Applications 中的一个被“注册”。
我知道我可以在“打开方式”菜单中清除重复项,但事实并非如此(我实际上将这些应用程序包放在磁盘的不同位置)。我也不想重命名这些应用程序包,将它们放在隐藏文件夹中或存档它们。
是否有可能调整这个行为?
答案1
您可以使用lsregister -u
以下命令取消注册应用程序:
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -u /path/to/application.app
然而该应用程序可能在某个时候再次注册。
如果您只想从“打开方式”菜单中删除应用程序,请运行defaults delete /path/to/Application.app/Contents/Info.plist CFBundleDocumentTypes
。Info.plist
如果应用程序已签名,则修改会破坏代码签名,并且自 10.8 以来它会导致沙盒应用程序在启动时崩溃。