特定のバンドル識別子を持つすべてのアプリを(ファイルシステムで)見つける良い方法を知っている人はいますか?NSWorkspace
およびLaunchServicesを使用すると、バンドルIDでアプリを検索できますが、返される結果は1つだけです。Spotlight(NSMetadataQuery
)が役立つかもしれないと思いますが、そのAPIについては少し不明なので、適切なキーがあるかどうかはわかりません。
コマンドラインlsregister
ツール(LaunchServices.framework内)があり、システムにすべてを(再)登録してから、認識しているすべてのレポートをダンプするように指示できます。それは文書化されておらず、その出力を解析するのは苦痛かもしれないので、それに依存することは理想的とは言えないようです。
(背景:私はゲーム改造用のアプリを構築しており、ユーザーがオープンパネルでファイルシステム全体を掘り下げるのではなく、サポートされているゲームの短いリストからすばやく選択するためのUIを提供したいと考えています。ユーザーがゲームの複数のコピーをインストールしている可能性があります:リリースとベータ、改造用の追加コピーなど)