今回開発する BlogAssistant はSafari のプラグインを予定しているが、開発途中の動作確認をいちいち Safariに読み込ませて行うのは非効率このうえない。とはいっても別途検証用のアプリを作るとソースコードの管理が面倒になる。1つのソースコードでプラグインと検証用アプリの2つをビルドできたら便利だ。実はXcodeはそれができる。今回はこの話題を扱う。
ターゲット
Xcode ではソフトウェア開発の最終成果物のことをターゲットと呼んでいる。このターゲットは新規にプロジェクトを作成する時に用意されているテンプレートを使うと標準で1つ用意される。
(例)
このターゲットは固定的なものではなく、開発目的に応じて変更したり、複数作成することができる。
今回は1つのプロジェクトでSafari用プラグインと通常のアプリケーションの2つのターゲットを作成してみる。
※以下、Mac OS X v10.5 / Xcode 3.1 での説明。
ひな形の作成(Safariプラグイン用ターゲット)
Xcodeを起動して新規プロジェクトを作成する。テンプレートは WebKit Plug-in を指定し、プロジェクト名を BlogAssistant とする。
動作確認だけしたいのでビルドして Safari へ登録する。build 配下の BologAssistant.webplugin を ~/Library/Internet Plug-Ins/ へコピーする。
Safari を再起動してヘルプメニューの「インストール済みプラグイン」を選ぶ。
表示された。ひな形がちゃんと組み込まれたのがわかる。ビルドは問題なし。
検証用ターゲット
続いて通常のアプリケーションをビルドする為のターゲットを用意する。
まずメニューから「新規ターゲット...」を選ぶ。
テンプレートから Application を選ぶ。
ターゲット名は "BlogAssistant Test App" とした。
完了すると、ターゲットリストに表示される。
*.plist もきちんと用意される。
この時点でビルドメニューにも BlogAssistant Test App が現れる。
ここまででターゲットのひな形ができた。
次は最低限アプリケーションが動く為の設定を行う。
まず main.m を作成する。これは他のアプリケーションからコピーしてくれば良い。
情報を開き、ターゲットのタブ内で BlogAssistant Test App へチェックをつけておく。一方 BlogAssistant(プラグイン用ターゲット)からはチェックを外しておく。こうするとビルド時に適切に処理される。
続いて XIB の追加。動作確認を兼ねてウィンドウを表示させたいので用意しておく。
名前を MainMenu.xib とする。こうすると起動時に自動的に読み込まれる(このファイル名は *.plist の "Main nib file base name" エントリに記載されている)。またターゲットの BlogAssistant Test App へチェックを入れておき、一方プラグイン用ターゲットの方からは外しておく。
ウィンドウを一つ追加する。
ここまででターゲットのリストを見ると BlogAssistant Test App の方にも数字が出てくる。これはビルド時に各フェーズで処理対象となるファイルの数。先ほどターゲットのチェックボックスの状態がここへ反映される。クリックすると対象となるファイルを確認することができる。
さてビルドしてみよう。アクティブターゲットに BlogAssistant Test App を指定してビルドを実行。
そして実行すると..
出た。
- - - -
これで試行錯誤しつつプラグイン開発が進められそうだ。
※プラグイン自体のデバッグはまた別の話題