アプリケーションの info.plist に NSService エントリを追加して、特定のファイルの OSX サービスを公開するアプリケーションを作成しました ( http://www.macosxautomation.com/services/learn/のように)。新しいマシンでアプリケーションを実行すると、ファインダーの右クリック コンテキスト メニューにサービスがすぐに表示されません。
これは、ペーストボード サービスが /Applications フォルダのインデックスを再作成しておらず、新しくインストールされたサービスを「発見」していないためだとわかっています。
/System/Library/CoreServices/pbs.
ここでの質問は、私のアプリケーションを初めてインストールするユーザーに私のサービスができるだけ早く表示されるようにする最善の方法は何かということです。
アプリケーションの起動時に「/System/Library/CoreServices/pbs」へのシステム コールを実行できますが (ユーザーがアプリケーションをすぐに起動した場合)、問題は部分的にしか解決しません (さらに、これを行うためのより良い Cocoa API ベースの方法)。
私のアプリケーションが通常、コンテキスト メニューからのみアクセスされる場合、ユーザーは外出してアプリケーションを起動しようとは考えません。コンテキスト メニューが表示されない場合にのみ、壊れていると考えるでしょう。
インストーラーを使用してアプリケーションを配布していません。/Applications にドラッグ アンド ドロップできるバンドルを提供しているだけです (Apple が通常示唆しているように)。
この方法でインストールを行うときに、サービス検出のプロセスを促進する方法はありますか?
補足として、この問題は 10.8 には存在しない可能性があります (少なくともそれほど顕著ではありません)。Apple は、最新のリリースでこのインデックス作成をより迅速に行うようにした可能性があります。