C++ 如何检查应用程序在OSX下的位置?

C++ 如何检查应用程序在OSX下的位置?,c++,objective-c,macos,bundle-identifier,cfbundleidentifier,C++,Objective C,Macos,Bundle Identifier,Cfbundleidentifier,如何检查安装在OS X下的应用程序的位置? 我用LSFindApplicationForInfo方法进行了尝试,如果您正在搜索bundle标识符,它可以正常工作 但是,如果您安装了一个应用程序的多个实例,则这种方法不起作用LSFindApplicationForInfo仅获取应用程序的一个实例的位置。此外,OS X 10.10中不推荐使用此函数 来自以下线程的终端输入mdfind“kMDItemCFBundleIdentifier工作正常,但仅在启用聚光灯时工作 如何在用C或Objective-

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

但是,如果您安装了一个应用程序的多个实例,则这种方法不起作用
LSFindApplicationForInfo
仅获取应用程序的一个实例的位置。此外,OS X 10.10中不推荐使用此函数

来自以下线程的终端输入
mdfind“kMDItemCFBundleIdentifier
工作正常,但仅在启用聚光灯时工作

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


如果您的目标是10.10或更高版本,则可以使用
lscopyApplicationUrlsFundleIdentifier()
。这记录为返回具有给定捆绑标识的所有应用程序的URL


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

您是在寻找自己的应用程序,一个您可以控制其属性的应用程序?还是您在询问一般情况?我正在开发一个应用程序,它应该检查系统上存在另一个特殊应用程序。如果是,我需要每个实例的特殊应用程序的完整系统路径。例如,如果某个应用程序位于桌面上,同时位于应用程序文件夹内(可能是旧版本)然后我想知道以下路径:/Users/../Desktop/name.app和/Applications/name.app