问题描述
absolutePathForAppBundleWithIdentifier
和 URLForApplicationWithBundleIdentifier
是 API 调用,它们接收包标识符并返回声明该标识符的应用程序的路径。这是如何工作的?
- 有缓存吗?
- 它在哪里?
- 它是什么格式?
- 什么更新了这个缓存?
- 我可以直接从命令行查询这个缓存吗?
- 如果有多个具有相同标识符的捆绑包,例如同一应用的多个版本或两个应用发生 id 冲突,会发生什么情况?
解决方法
您正在寻找Launch Services。 macOS 的这一部分维护应用程序数据库,正如您将在文档中读到的那样,Finder 本身使用它。 HTH