1

如何检查安装在 OS X 下的应用程序的位置?我使用该方法进行了尝试,LSFindApplicationForInfo如果您正在搜索捆绑标识符,它可以正常工作。

但是,如果您安装了多个应用程序实例,则这种方法不起作用。LSFindApplicationForInfo只获取应用程序的一个实例的位置。此外,此功能在 OS X 10.10 中已弃用。

以下线程的终端输入mdfind "kMDItemCFBundleIdentifier工作正常,但仅在启用聚光灯时才有效。

如何在用 C 或 Objective-C 编写的源代码中从所有具有相同包标识符或相同名称“name.app”的应用程序实例中获取位置?

如何找到具有相同捆绑标识符的多个应用程序?

检查是否存在 Mac OS X 应用程序

4

1 回答 1

3

如果您可以针对 10.10 或更高版本,则可以使用LSCopyApplicationURLsForBundleIdentifier(). 这被记录为返回具有给定包标识符的所有应用程序的 URL。

我不清楚您尝试查找的应用程序是否是您控制其属性的应用程序。如果是,并且您需要支持 10.10 之前的 OS X 版本,您可以使用的一种方法是让目标应用程序声称支持自定义虚拟 URL 方案。然后您可以使用LSCopyApplicationURLsForURL()它来查找它的所有实例。您使用您的虚拟方案构建一个 URL,例如com-yourcompany-yourproduct-app-identifier-scheme://junk并将其作为输入传递。

于 2015-02-28T00:22:59.177 回答