gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 13:42:59 25 4
gpt4 key购买 nike

有谁知道找到(在文件系统中)每个具有给定包标识符的应用程序的好方法吗? NSWorkspace和 Launch Services 允许您通过包标识符查找应用程序,但只返回一个结果。我怀疑 Spotlight ( NSMetadataQuery ) 可能会有所帮助,但我对它的 API 有点不清楚,所以我不确定是否有合适的 key 。

有命令行 lsregister工具(在 LaunchServices.framework 中),它可以被告知(重新)注册系统上的所有内容,然后转储它所知道的所有内容的报告。依赖它似乎不太理想,因为它没有记录并且解析其输出可能会很痛苦。

(背景:我正在构建一个用于游戏修改的应用程序,并希望提供 UI 以便从支持的游戏的简短列表中快速选择,而不是要求用户在打开面板中挖掘整个文件系统。但是,我希望它相当用户可能安装了多个游戏副本:发行版和测试版,用于修改的额外副本等)

最佳答案

您想要 kMDItemCFBundleIdentifier聚光灯/元数据键。

pierre$39> mdfind "kMDItemCFBundleIdentifier == 'org.videolan.vlc'"
/Applications/VLC.app
/Applications/vlc-0.8.6c/VLC.app

从那里开始,只需正确调用 file metadata APIs 即可。 (选择你的毒药,碳或 cocoa )。有趣的是,这个 key 并没有被很好地记录下来:它不在 File Metadata Attributes Reference 中。 ,虽然它在 MDItem Reference .

再一次,它表明游戏修改工具引发的用例很少有其他类型的应用程序引发, that sometimes aren't very well served by Apple ...

附录:一旦你有了你的 list ,我认为向用户展示它的最好方法是列出你找到的每个项目的版本( kMDItemVersion );您也可以显示路径,但版本可能对用户最有用(毕竟,他可能会保留不同的实例以获得特定版本)。

关于macos - 如何找到具有相同捆绑标识符的多个应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8841043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com