1

特定のバンドル ID で Mac にインストールされているアプリケーションを検索しようとしています。私はこの質問LSFindApplicationForInfoで見つかったを使用してこれを行うことができます。

私が直面している問題は、同じバンドル ID を持つインストール済みアプリケーションを検索する方法がわからないことです。たとえば、 の 2 つのバージョンがインストールされている場合com.domain.coolapp、両方を一覧表示するにはどうすればよいですか? を使用して .app ファイルを検索する以外に、解決策が見つからないようですlsregister

ドキュメントに記載されているように、これは使用できませんLSFindApplicationForInfo:

指定された特性に一致するアプリケーションが複数見つかった場合、Launch Services は、アイテムを開くための優先アプリケーションを検索する場合と同じ方法で 1 つを選択します。

4

1 に答える 1

1

mdfind(1) (本質的に Spotlight)NSTaskを呼び出すために使用できます。

mdfind "kMDItemCFBundleIdentifier == 'com.domain.coolapp'"

優先するアプリだけでなく、1 行に 1 つの一致するアプリを返します。私のマシンでは、呼び出しはコマンド ラインから即座に返されるため、舞台裏で巧妙なことが起こっている可能性があります。

于 2013-08-05T18:54:38.777 に答える