如何检查OS X下安装的应用程序的位置?
我使用方法LSFindApplicationForInfo
尝试了它,如果您正在搜索包标识符,它可以正常工作。
但是,如果您安装了多个应用实例,则这种方式无效。 LSFindApplicationForInfo
只获取应用的一个实例的位置。此外,OS X 10.10中不推荐使用此功能。
来自以下线程的终端输入mdfind "kMDItemCFBundleIdentifier
工作正常,但只有在启用了聚光灯的情况下才能正常工作。
如何使用相同的包标识符或相同的名称来取消所有应用实例的位置" name.app"用C或Objective-C编写的内部源代码?
答案 0 :(得分:3)
如果您可以定位10.10或更高版本,则可以使用LSCopyApplicationURLsForBundleIdentifier()
。这被记录为返回具有给定包标识符的所有应用程序的URL。
我不清楚您尝试查找的应用是否属于您控制的属性。如果是,并且您需要在10.10之前支持OS X版本,您可以使用的一种方法是使目标应用程序声明支持自定义虚拟URL方案。然后,您可以使用LSCopyApplicationURLsForURL()
查找它的所有实例。您使用虚拟方案构建URL,例如com-yourcompany-yourproduct-app-identifier-scheme://junk
并将其作为输入传递。