Spotlightのインデックスを使用して検索する

Rubyのxcode-install gemでインストール済みのXcodeのバージョンを取得する場合、内部的には

mdfind "kMDItemCFBundleIdentifier == 'com.apple.dt.Xcode'"

というコマンドを実行しているがSpotlightのインデックスに正しく含まれていないと検索されない。

Xcode.appのパスを指定して下記コマンドを実行した時にkMDItemCFBundleIdentifier = "com.apple.dt.Xcode"というレスポンスが得られているのにインストール済みのXcodeのリストに含まれなかった場合は、Spotlightのインデックスが正しく構築されていないことになる。

mdls -name kMDItemCFBundleIdentifier /Applications/Xcode.app

コマンドでインデックスを再構築できる

インデックスの再構築は下記コマンドで実行できる。

sudo mdutil -E /
sudo mdutil -i on /