搜索具有相同捆绑ID的多个应用

时间:2013-08-05 10:40:05

标签: objective-c macos launch-services

我正在尝试使用特定的捆绑ID搜索我的Mac上安装的应用程序。我设法使用LSFindApplicationForInfo问题中的this来执行此操作。

我面临的问题是我无法弄清楚如何搜索具有相同捆绑ID的已安装应用程序。例如。如果我安装了com.domain.coolapp的两个版本,我如何列出这两个版本?除了使用lsregister搜索.app文件之外,我似乎无法找到任何解决方案。

正如文档中所述,使用LSFindApplicationForInfo

是不可能的
  

如果找到多个与指定匹配的应用程序   特征,启动服务选择一个与之相同的方式   在找到打开项目的首选应用程序时。

1 个答案:

答案 0 :(得分:1)

您可以使用NSTask来呼叫mdfind(1)(主要是Spotlight)。

mdfind "kMDItemCFBundleIdentifier == 'com.domain.coolapp'"

它每行返回一个匹配的应用程序而不是只返回首选的应用程序,并且在我的机器上,调用会立即从命令行返回,因此可能会在幕后发生一些聪明的事情。