XCodeでSpotlightインポーターをバンドルする方法

SpotLightインポーターのデプロイは

  • MyApp.app/Contents/Library/Spotlight
  • /Library/Spotlight
  • ${HOME}/Library/Spotlight

のいづれかに配置するわけですが、MyApp.app配下以外に配置するとなると別途インストーラ作成するなどの手間がかかるので通常はアプリケーションにバンドルします。バンドルするにはターミナルから

cp -r MyAppImporter.mdimporter MyApp.app/Contents/Library/Spotlight/

とやってもいいわけですがこれは面倒。XCodeのビルドフェーズに「ファイルをコピー」を追加してバンドルするのが正解です。

  1. プロジェクトに作成したSpotlightプラグインを追加
  2. ターゲットに「追加」-「新規ビルドフェーズ」-「新規コピーファイル」で「ファイルをコピー」のフェーズを追加
  3. 作成されたビルドフェーズにSpotLightプラグインをドロップ

なんだか簡単そうですが一つ落とし穴があって、1.プロジェクトにプラグインを追加するときに、「グループとファイル」ペインで「追加」-「既存のファイル...」じゃだめなんですよね。これだとインポーター自身のバンドル構造をコピーできなくてファイル単体のコピーになっちゃいます。お察しの通りぼくはここで数時間ハマりました。正しくは「追加」-「既存のフレームワーク...」でインポーターをプロジェクトに追加、これが正解でした。

この記事のトラックバックURL:

http://hippos-lab.com/blog/trackback/213

Comments