我正在尝试使用特定的捆绑ID搜索我的Mac上安装的应用程序。我设法使用LSFindApplicationForInfo
问题中的this来执行此操作。
我面临的问题是我无法弄清楚如何搜索具有相同捆绑ID的已安装应用程序。例如。如果我安装了com.domain.coolapp
的两个版本,我如何列出这两个版本?除了使用lsregister
搜索.app文件之外,我似乎无法找到任何解决方案。
正如文档中所述,使用LSFindApplicationForInfo
:
如果找到多个与指定匹配的应用程序 特征,启动服务选择一个与之相同的方式 在找到打开项目的首选应用程序时。
答案 0 :(得分:1)
您可以使用NSTask
来呼叫mdfind(1)(主要是Spotlight)。
mdfind "kMDItemCFBundleIdentifier == 'com.domain.coolapp'"
它每行返回一个匹配的应用程序而不是只返回首选的应用程序,并且在我的机器上,调用会立即从命令行返回,因此可能会在幕后发生一些聪明的事情。