Xcode 5 で Quick Look プラグイン (.glgenerator) を開発するにあたって、私が使っている Build Scheme です。
Quick Look プラグインは普通のアプリケーションと違ってプラグインを直接実行するわけではないので、デバッグ用にはそれに合わせた設定が必要。
なのですが、日本語で(英語でさえ)いい感じに紹介してるサイトが見当たらなかった1ので書いてみたいと思います。
テスト用ファイルを作成
デバッグ時に使用するテストファイルを作成しておく。テストファイルはデスクトップなどに置かずにプロジェクトディレクトリに突っ込んでおいた方が便利だと思う。後述のパスの指定もしやすいし、テストファイルもプロジェクトの一部としてまとめて管理した方が理にかなってる。
2つのScheme作成
Quick Lookはpreviewをthumbnailの2種類がある。それぞれテストできるように、thumbnail用とpreview用の2つのSchemeを作る。とはいえ、以下で解説する1カ所を抜かして内容は同一。
Scheme設定
Executableの指定
Run時にコマンドラインの qlmanage
を実行するように設定する。qlmanage
はコマンドラインでのQuick Look管理を司る。つまりこれを使ってテストファイルをプレビューする。詳しくは qlmanage -h
を。
RunのInfoタブを開いて、Executableをqlmanageにする。おそらくプルダウンには出てこないので、「Other...」を選択し、そこからqlmanageを選ぶ2。qlmanageの居場所はTerminalから which
でも叩いて見つけておく。これでRun時にqlmanage
コマンドが蹴られる。
$ which qlmanage
/usr/bin/qlmanage
Argumentsの設定
次に glmanage
実行時の引数を Arguments タブで設定する。引数は3つ取る。
-
-p
(もしくは-t
):Quick Lookするファイルのパスを設定。先ほどのテストファイルのパスを指定すれば良い。$(SOURCE_ROOT)
でプロジェクトのルートディレクトリのパスが指定できる。この(スクリーンショット)場合はルートに置いたtest.svgというファイルをテストに使う。このオプションを-p
にするとpreviewになり-t
にするとthumbnailになる。なのでこれを-p
と-t
にした2つのSchemeを作れば良い。 -
-c
:テストファイルのファイルタイプ UTI を指定する。この次の-g
オプションを有効にするためにはこれも指定する必要がある。これは作成しているQuick Lookプラグインに合わせて適宜変える。 -
-g
:使用するジェネレータを強制的に指定する。これを抜かすと、今回buildしたqlgeneratorではなく別のヤツが使われる可能性があるので重要。-g "$(TARGET_BUILD_DIR)/$(TARGET_NAME).qlgenerator"
を指定。
「Expand Variables Based On」には適宜デバッグしたいターゲットを選択しておく。
まとめ
ということで、Quick Lookプラグイン開発用のBuild Scheme設定でした。これでshareもできる環境に寄らないプレーンなSchemeが完成しました。ポイントは以下の3点:
- テストファイルはプロジェクトディレクトリ内に入れて管理する
- thumbnail用とpreview用に2つのSchemeを作成する
- qlnamage実行時に
-g
オプションを指定して、確実にデバッグ対象のジェネレータが使われるようにする
--
1. 一応Appleのガイドもあるけど古いしあんま親切ではない。
2. 選択パネルから /usr/bin/
に行くのはやりづらい。Finder の Go to Folder か Terminal の open
コマンドで該当フォルダを Finder で開いておいて、それをパネルにドラッグ&ドロップするのが楽だと思う。