※前回からひきつづき、AIR3.3 新機能を試します。
AIR3.3の新機能 「iOS USBデバッグ」です。
これは簡単に言うと、USB接続されたiOSアプリのtraceをPC側で表示する機能です。
FDT本家サイトに解説がありました。
※本家通りの手順だとなぜかうまくいかなかったので、少し内容が違う部分があります。
[1] ipaの書き出し
アプリがどのポート番号宛にtraceを送信するか?を指定して、書き出します。
それには、-listenオプションとそれにつづけてローカルポート番号を指定して、ipaを書き出します。
ex)
<property name="PROJ_NAME" value="YourProjectName"> <property name="LOCAL_PORT" value="7935"> <property name="REMOTE_PORT" value="7935"> <target name=”01. package for usb debug”> <fdt.loadProjectProperties projectname="${PROJ_NAME}" /> <exec executable=”${FDTProjectSdkPath}/bin/adt” failonerror=”true” dir=”../bin”> <arg value=”-package” /> <arg value=”-target” /> <arg value=”ipa-debug-interpreter” /> <arg value=”-listen” /> <arg value=”${LOCAL_PORT}” /> <arg value=”-provisioning-profile” /> <arg value=”../cert/********.mobileprovision” /> <arg value=”-storetype” /> <arg value=”pkcs12″ /> <arg value=”-keystore” /> <arg value=”../cert/********.p12″ /> <arg value=”-storepass” /> <arg value=”${PASS}” /> <arg value=”${PROJ_NAME}.ipa” /> <arg value=”${PROJ_NAME}-app.xml” /> <arg value=”${PROJ_NAME}.swf” /> </exec> </target>
[2] デバイスハンドルを調べる
iOS端末をUSB接続するたび?にデバイスハンドルというID?のようなものが割り振られるようです。それを調べるにはFlexSDKの idb -devicesオプションを利用します
ex)
<target name=”02. show connected devices”> <fdt.loadProjectProperties projectname=”${PROJ_NAME}” /> <exec executable=”${FDTProjectSdkPath}/lib/aot/idb/idb”> <arg value=”-devices” /> </exec> </target>
これを実行すると下記のような結果が得られます。
[exec] List of attached devices [exec] Handle UUID [exec] 4 b47b4c4fe1a664e923f6fa3df90b20f1a8r45cdc [exec] Result: 1 BUILD SUCCESSFUL Total time: 1 second
この「4」という部分 (iOS端末接続のたびに違う) にあたる数字を覚えておきます。
[3] アプリを起動する
[1]で書きだしたアプリを、XcodeのOrganizerやiTuneなどを利用してiOS端末にインストールし、起動します。起動するとAIRの接続待機を示すポップアップアラートが表示されます。
[4] デバッガを起動
[3]のアラートが表示されている状態で、デバッガを起動します。
<target name="04. start FDT debugger for usb debug"> <fdt.loadProjectProperties projectname="${PROJ_NAME}" /> <fdt.startDebugger projectname="${PROJ_NAME}" port="${LOCAL_PORT}" asclient="true" /> </target>
[5] USBデバッグを開始する
idb の -foword で
・ローカルポート
・リモートポート
・[2]で取得しておいたデバイスハンドル
を渡して実行します。
<target name="05. forward ports for USB debug"> <fdt.loadProjectProperties projectname="${PROJ_NAME}" /> <exec executable="${FDTProjectSdkPath}/lib/aot/idb/idb"> <arg value="-forward" /> <arg value="${LOCAL_PORT}" /> <arg value="${REMOTE_PORT}" /> <arg value="4" /> </exec> </target>
これで iOS AIR アプリ の trace が、FDTのコンソールに出力されます。
まとめ
以上全体をまとめたANTは下記に置きました。
FDT5.5 で AIR3.3 iOS USBデバッグするためのANTテンプレート #ant #iOS #AIR – Qiita