OS X:按新安装应用程序的标识符划分的捆绑位置

Tho*_*ung 5 macos cocoa bundle

类似于通过标识符定位包的问题,​​但问题不同:

我有几个应用程序需要通过 ID 来定位彼此的包。这总是很有效,除非我对所有应用程序进行全新安装。在许多情况下,将查找器指向安装位置即可了解捆绑包的位置,但有时这还不够;我必须先运行该应用程序,然后才能使用它的包 ID 来查找路径。我应该提到的是,我使用的安装程序将应用程序复制到 /Applications/,因此当我安装应用程序时,查找器永远不会打开。

看来,当新安装应用程序捆绑包时,系统需要一些时间才能更新将捆绑包 ID 映射到捆绑包位置的内部注册表。我想知道的是:

  1. 这些映射在哪里维护以及
  2. 如何强制系统/文件管理器/工作区(?)更新地图

hbw*_*hbw 3

这些映射保存在启动服务数据库中。我不知道它存储在哪里,但确切的位置无关紧要,因为有更好的方法来实现您的目标。

\n\n

您可以通过多种方式手动更新启动服务数据库,但就我个人而言,我认为以编程方式执行此操作会更容易,尤其是在您的情况下。在这种情况下,您将利用 Launch Services API\xe2\x80\x94,具体来说,我会考虑使用LSRegisterURL(),因为这似乎可以实现您想要做的事情。

\n\n

请查看启动服务文档,了解有关在数据库中注册应用程序以及这一切通常如何工作的更多信息。

\n