QuickLookプラグインが動き始めました

印刷用表示 |テキストサイズ 小 |中 |大 |

Repeating Motif Wonderland

更新日 2011-10-02 | 作成日 2007-12-12

QuickLookプラグインが動き始めました

2008.1.7


プラグイン開発に再チャレンジ

 一度チャレンジして挫折したQuickLookプラグインの開発ですが、もう一度トライしてみたところ、何とか動く様になりました。
 失敗した原因はいくつかあります。

  1. 独自UTIが認識されていなかった
  2. ビルドしたプラグインの場所が悪かった
  3. RMGDocumentがreadFromURL:ofType:に対応していなかった

独自UTIが認識されていなかった

 参考にならない情報で済みませんが、実はこれは今もって何が悪かったのかよくわかっていません。プロパティリストをああでもない、こうでもないといじくっているうちにうまくいってしまったという感じです。

 UTTypeConformsToキーの値をpublic.composite-contentからpublic.dataに変えているのですが、あまり関係ないような気もします。

 CFBundleIdentifierを変えたのがいけなかったのかもしれません。これは元に戻しています。

 プラグインのプロパティリストに不要なUTImportedTypeDeclarationsキーがあったせいかもしれません。これは削除しています。

 とにかくプロパティリストをいじっているうちに Content type UTI: dyn.ah62d4rv4ge81e5phqv10gとなっていたものがContent type UTI: com.novemberkou.rmgdocと正しく認識する様になりました。

ビルドしたプラグインの場所が悪かった

 ビルドしたプラグインが作られる場所ですが、プロジェクトを作成した時のデフォルトの位置ではプラグインがシステムに認識されません。

 気づいてみれば当たり前ですが、~/Library/QuickLookか/Library/QuickLookのどちらかにおいておかないと、システムがプラグインを認識してくれないわけです。

 ビルドして、できたプラグインを ~/Library/QuickLookに移動して、それからqlmanageを実行すれば良いわけですが、そこまで気が回らずついアプリケーション開発の時の様に「ビルドして実行」してしまったため、実行結果が Generator used: Noneとなってしまったのでした。

 ビルドする場所を ~/Library/QuickLookにすれば「ビルドして実行」できます。これって誰でも一度はひっかかるような気がするのですが・・・

RMGDocumentがreadFromURL:ofType:に対応していなかった

 これは、それ以前に1と2でひっかかっていたので挫折した原因ではないのですが、前回載せたサンプルコードそのままのコードではダメだったという話です。
 Pantherで動かす前提のコードなのでreadFromURL:ofType:メソッドは実装していないのでした。

QuickLookプラグイン開発の解説サイトを準備中です

 プラグイン自体完成したわけではないのですが、何とかなりそうなメドがついてきたので、いずれ解説サイトを公開できると思います。とはいえ、いつ完成するかまだわからないので、気長にお待ちください。