Debugger for IDML/ja
From IDMLWiki
IDMLデバッガーをインストールする
| 項目 | 条件 |
|---|---|
| OS | Mac OS X 10.5.x 〜 |
| IDE | Xcode |
Contents |
InDesign は IDMLパッケージのエラーを無視する
ソフトウェアを開発するときに、もしデバッガーがなかったら骨が折れるに違いない。InDesign CS4 は、IDMLパッケージがエラーが持っていても寡黙に開いてしまうんだ。予期しないデータとスクリプトのエラーは無視される。そうしないと正しい IDMLパッケージを続けて処理できない。スクリプトの進行がストップしてしまう。だから僕はエラーが無視される事は理解できるよ。だけどこの挙動はIDMLファイルのデバッグ作業を難しくしているよね。エラー情報がなければ、どこのデータが間違っているのか見つけることが難しい。XMLファイルの生成始める前に、デバッガーをインストールしたほうがいいと思う。
| Note: | InDesignで読み込む前に スキーマチェックはもちろん実行して欲しい。ここで言うエラーとは、スキーマチェックを合格しているにも関わらずエラーを含んでいる場合の話だよ |
IDMLのデバッガーはプラグインとして提供されている
COOKBOOK を見てみよう。14ページに解説があるよ。IDMLのデバッガーはプラグインとして提供されている。ソースファイルをコンパイルしなくてはいけないけど、コーディングの必要はない。でも、僕はマックユーザーだからXcodeを使った方法しか紹介できない。しかも僕は Xcodeについて丁寧に説明できるほど詳しく理解できているわけではない。さらに、下の図はすべて Xcodeのバージョンが 3.0の画面で少々古い。2009年3月16日付けの最新バージョンは 3.1.2だ。図と違う場合は、想像力を豊かにして根性でチャレンジして欲しい。(親切でなくてごめんね)
デバッガーのソースをコンパイルしよう
Safari 4 Public Beta をインストールした環境では、Xcodeは 3.1.2にしないと起動しません。
プロジェクトファイルは <SDK>/build/mac/prj/ にあるよ。そのプロジェクトファイルの名前は INXErrorLogging.sdk.xcodeproj と INXErrorLoggingUI.sdk.xcodeproj だ。
| Note: | Adobeのサイトからダウンロードした InDesign CS4 Products SDK (Macの場合、具体的にアーカイブファイル名を記述すると adobe_indesign_cs4_products_sdk_532mac.dmg となる)をダブルクリックすると、SDK というイメージディスクがマウントされる。通常はそのイメージディスクの内容をすべて、自分のHDのどこかのフィルダーにコピーするはずだ。そのフォルダーを <SDK> に置き換えてパスを読んで欲しい。 |
リリースモードを選ぶ
2つのプロジェクトファイルは同じことの繰り返しで済むから、一つずつ処理しよう。ではまず最初にウィンドウの左上にあるポップアップメニューをからリリースモードを選んでくれ。(デバッグモードを選ぶと、Xcodeをインストールしていないマシンでは、そのプラグインは使えなくなるからね)
ビルドしてから、プラグインを所定のフォルダーへ移動する
準備ができたらビルドボタンをクリックするんだ。プラグインは <sdk>/build/mac/release/SDK/ に生成されるよ。ファインダーで、そのプラグインを見つけるのは簡単だ。下の図を見て欲しい。
ウィンドウの左に “Products” フォルダーがあるから、そこを注目してくれ。この図の場合は INXErrorLogging.sdk.InDesignPlugin だ。同じファイル名が赤文字であると思う。それは Debugモードで実行すると、それも黒くなるはずだ。もし2つとも黒かったら、どちらか選択した状態でコマンド + I でファイルの情報を見よう。ファイルパスに release か debug かどちらかの文字があるからわかると思う。そして “Reveal in Finder” (日本語なら “ファインダーに表示” だ)をコンテキストメニューを使って選択するんだ。プラグインを確認したら、それを InDesgin CS4 の Plug-Ins フォルダー(/Applications/Adobe InDesign CS4/Plug-Ins/UI/)に移動しよう。もちろん、INXErrorLoggingUI.sdk.xcodeproj も忘れずにコンパイルしてね。2つのプラグインが必要なんだ。
ログファイルを用意する
最後に、InDesign CS4 にログファイルの参照を教えてあげなきゃいけない。空っぽのテキストファイルを作り、下の図のように CS4のメニューバーからそのファイルを選択しよう。Terminal で touch error.log とシェルコマンドで空ファイルを作ると手間がない。
試してみる
さぁ、効果を確認するために失敗してみよう! (^.^) エラーログを出力してみよう。僕は一番シンプルなIDML packageを使ったよ。Spread_spread1.xml を編集した。属性名の一文字を消してみたんだ。そのフォルダを IDMLパッケージにして、CS4で開いてみた。
<PathPointArray>
<PathPoint Anchor="36 36" LeftDirection="36 36" RightDirection="36 36"/>
<PathPoint Anchor="36 186" LeftDirection="36 186" RightDirection="36 186"/>
<PathPoint Ancho="172 186" LeftDirection="172 186" RightDirection="172 186"/>
<PathPoint Anchor="172 36" LeftDirection="172 36" RightDirection="172 36"/>
</PathPointArray>
結果はこれだ。
Begin a new INX Import Error Log Scripting Property Error: set property 'path geometry' on object 'text frame' failed with error 0x770d 'セットのプロパティ 'PathGeometry' の値が無効です。予想される値は Array of GeometryPathType ですが、値 (((((36.0, 36.0), (36.0, 36.0), (36.0, 36.0)), ((36.0, 186.0), (36.0, 186.0), (36.0, 186.0)), (nothing, (172.0, 186.0), (172.0, 186.0)), ((172.0, 36.0), (172.0, 36.0), (172.0, 36.0))), FALSE)) を受け取りました。' End of a session
執筆者
PsychoCat 2009-03-16 15:40:26



