AIR Debug Launcher(ADL)の使用

開発時、SWF ベースのアプリケーションと HTML ベースのアプリケーションの両方を実行するには、AIR Debug Launcher(ADL)を使用します。ADL を使用すると、アプリケーションをパッケージ化してインストールしなくても実行できます。デフォルトでは、ADL では SDK に付属するランタイムが使用されるので、ADL を使用するためにランタイムを個別にインストールする必要はありません。

ADL では、トレースステートメントとランタイムエラーが標準出力に出力されますが、ブレークポイントやその他のデバッグ機能はサポートされていません。複雑な問題に対するデバッグ作業には、Flash デバッガー(または、Flash Builder、Aptana Studio などの統合開発環境)を使用できます。

ADL によるアプリケーションの起動

ADL でアプリケーションを実行するには、次の形式を使用します。

adl application.xml

この application.xml は、起動するアプリケーションのアプリケーション記述ファイルです。

ADL の完全なシンタックスを以下に示します。

adl [-runtime runtime-directory] [-pubid publisher-id] [-nodebug] [-profile profileName] application.xml [root-directory] [-- arguments]

-runtime runtime-directory:使用するランタイムが含まれているディレクトリを指定します。指定しない場合、ADL プログラムと同じ SDK のランタイムディレクトリが使用されます。SDK フォルダー外へ ADL を移動している場合は、ランタイムディレクトリを指定します。Windows および Linux では、Adobe AIR ディレクトリが含まれているディレクトリを指定します。Mac OS X では、Adobe AIR.framework が含まれているディレクトリを指定します。

-pubid publisher-id:指定された値を AIR アプリケーションの発行者 ID としてこの実行に割り当てます。一時的な発行者 ID を指定すると、ローカル接続による通信など、アプリケーションを一意に識別できるようにするために発行者 ID を使用する AIR アプリケーションの機能をテストできます。AIR 1.5.3 では、アプリケーション記述ファイルに発行者 ID を指定することもできます。その場合は、このパラメーターを使用しないでください。

注意: AIR 1.5.3 では、発行者 ID の算出と AIR アプリケーションへの割り当てが自動的に実行されなくなりました。既存の AIR アプリケーションのアップデートを作成するときに、発行者 ID を指定できます。ただし、新しいアプリケーションに発行者 ID は不要なので、指定しないでください。

-nodebug:デバッグサポートをオフにします。このオプションを使用すると、アプリケーションプロセスが Flash デバッガーに接続できなくなり、処理されていない例外のダイアログが非表示になります。ただし、トレースステートメントは、引き続きコンソールウィンドウに出力されます。デバッグをオフにすると、アプリケーションの実行がやや速くなり、インストールされているアプリケーションの実行モードに動作が近くなります。

-atlogin:ログイン時にアプリケーションの起動をシミュレートします。このフラグを使用すると、アプリケーションがユーザーのログイン時に起動するように設定されている場合にのみ実行するアプリケーションロジックをテストできます。-atlogin を使用する場合、アプリケーションに送出される InvokeEvent オブジェクトの reason プロパティは、アプリケーションがすでに実行されていない限り、standard ではなく login です。

-profile profileName:指定されたプロファイルを使用して、アプリケーションをデバッグします。「profileName」には、desktopextendedDesktopmobileDevice および extendedMobileDevice を使用できます。詳しくは、ターゲットアプリケーションプロファイルの限定およびアプリケーションプロファイルを参照してください。

application.xml:アプリケーション記述ファイルです。詳しくは、AIR アプリケーションプロパティの設定を参照してください。アプリケーション記述子は ADL の唯一の必須パラメーターです。多くの場合、他のパラメーターは必要ありません。

root-directory:実行するアプリケーションのルートディレクトリを指定します。指定しない場合、アプリケーション記述ファイルが含まれているディレクトリが使用されます。

-- arguments:「--」の後に続くすべての文字ストリングが、コマンドライン引数としてアプリケーションに渡されます。

注意: 既に実行されている AIR アプリケーションを起動した場合、そのアプリケーションの新しいインスタンスは開始されません。代わりに、invoke イベントが実行中のインスタンスに送出されます。

トレースステートメントの出力

ADL の実行に使用するコンソールにトレースステートメントを出力するには、trace() 関数を使用して、トレースステートメントをコードに追加します。

ActionScript の例:

//ActionScript 
trace("debug message"); 

JavaScript の例:

//JavaScript 
air.trace("debug message");
JavaScript コードで alert() および confirm() 関数を使用すると、アプリケーションからのデバッグメッセージを表示できます。また、シンタックスエラーがある場所の行番号や、キャッチされない JavaScript 例外もコンソールに出力されます。
注意: JavaScript の例のように air 接頭辞を使用するには、ページに AIRAliases.js ファイルを読み込む必要があります。このファイルは、AIR SDK の frameworks ディレクトリにあります。

ADL の例

現在のディレクトリのアプリケーションを実行します。

adl myApp-app.xml

現在のディレクトリのサブディレクトリのアプリケーションを実行します。

adl source/myApp-app.xml release

アプリケーションを実行し、「tick」と「tock」の 2 つのコマンドライン引数を渡します。

adl myApp-app.xml -- tick tock

特定のランタイムを使用してアプリケーションを実行します。

adl -runtime /AIRSDK/runtime myApp-app.xml

デバッグサポートを使用せずにアプリケーションを実行します。

adl myApp-app.xml -nodebug

Apache Ant を使用してアプリケーションを実行します。

<property name="SDK_HOME" value="C:/AIRSDK"/> 
<property name="ADL" value="${SDK_HOME}/bin/adl.exe"/> 
<property name="APP_DESCRIPTOR" value="$src/myApp-app.xml"/> 
 
<target name="test"> 
    <exec executable="${ADL}"> 
        <arg value="${APP_DESCRIPTOR}"/> 
    </exec>  
</target>

Flash デバッガー(FDB)への接続

Flash デバッガーを使用して AIR アプリケーションをデバッグするには、FDB セッションを開始してから ADL でアプリケーションを起動します。

注意: SWF ベースの AIR アプリケーションでは、ActionScript ソースファイルのコンパイル時に -debug フラグを指定する必要があります(Flash Professional の場合は、パブリッシュ設定ダイアログボックスの「デバッグを許可」オプションを確認してください)。
  1. FDB を開始します。FDB プログラムは、Flex SDK の bin ディレクトリにあります。

    コンソールに、FDB プロンプトの <fdb> が表示されます。

  2. run コマンドを <fdb>run [Enter] のようにして実行します。

  3. 別のコマンドまたはシェルコンソールで、アプリケーションのデバッグバージョンを開始します。

    adl myApp.xml
  4. FDB コマンドを使用して、必要に応じてブレークポイントを設定します。

  5. continue [Enter] のように入力します。

SWF ベースの AIR アプリケーションの場合は、ActionScript コードの実行だけがデバッガーによって制御されます。HTML ベースの AIR アプリケーションの場合は、JavaScript コードの実行だけがデバッガーによって制御されます。

デバッガーに接続せずに ADL を実行するには、-nodebug オプションを含めます。

adl myApp.xml -nodebug

FDB コマンドの基本情報を表示するには、help コマンドを実行します。

<fdb>help [Enter]

FDB コマンドについて詳しくは、Flex ドキュメントの「コマンドラインデバッガーコマンドの使用」を参照してください。

ADL の終了コードとエラーコード

次の表で、ADL によって出力される終了コードについて説明します。

終了コード

説明

0

正常起動。ADL は、AIR アプリケーションの終了後に終了します。

1

既に実行されている AIR アプリケーションの正常な呼び出し。ADL は直ちに終了します。

2

使用法エラー。ADL に渡された引数が正しくありません。

3

ランタイムが見つかりません。

4

ランタイムを起動できません。多くの場合、アプリケーションで指定されたバージョンが、ランタイムのバージョンと一致しないために起こります。

5

原因不明のエラーが発生しました。

6

アプリケーション記述ファイルが見つかりません。

7

アプリケーション記述子の内容が無効です。このエラーは、通常、XML の形式が正しくないことを示しています。

8

アプリケーションのメインコンテンツファイル(アプリケーション記述ファイルの <content> エレメントで指定)が見つかりません。

9

アプリケーションのメインコンテンツファイルが、有効な SWF または HTML ファイルではありません。

10

-profile オプションで指定されたプロファイルがアプリケーションでサポートされていません。