1

我正在尝试使用特定捆绑 ID 搜索安装在我的 Mac 上的应用程序。我设法使用LSFindApplicationForInfo这个问题中找到的方法来做到这一点。

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

如文档中所述,这是不可能的LSFindApplicationForInfo

如果找到多个与指定特征匹配的应用程序,Launch Services 会选择一个,其方式与查找用于打开项目的首选应用程序时相同。

4

1 回答 1

1

You can use NSTask to call mdfind(1) (essentially Spotlight).

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

It returns one matching app per line instead of only the preferred one, and on my machine the call returns instantaneously from the command line so there's likely something clever happening behind the scenes.

于 2013-08-05T18:54:38.777 回答