透過 USB 使用 FDB 遠端除錯

AIR 2.6 (Android) AIR 3.3 (iOS)

若要透過 USB 連線除錯應用程式,請使用 ‑listen 選項替代 -connect 選項來封裝應用程式。若指定 ‑listen 選項,則當您啟動應用程式時,執行階段會偵聽來自 TCP 連接埠 7936 上的 Flash 除錯程式 (FDB) 連線。然後,請使用 -p 選項執行 FDB,FDB 隨即會起始連線。

適用於 Android 的 USB 除錯程序

為了讓桌上型電腦上執行的 Flash 除錯程式,可以連線裝置或模擬器上執行的 AIR 執行階段,您必須使用 Android Debug Bridge (ADB,Android SDK 中的公用程式) 或 iOS Debug Bridge (IDB,AIR SDK 中的公用程式),將裝置連接埠轉送至桌上型電腦連接埠。

  1. 開啟終端機或命令提示視窗,移至包含應用程式原始碼的目錄。

  2. 使用 amxmlc 編譯應用程式,並啟用除錯:

    amxmlc -debug DebugExample.as
  3. 使用適當的除錯目標 (例如 apk-debug ) 封裝應用程式並指定 ‑listen 選項:

    adt -package -target apk-debug -listen -storetype pkcs12 -keystore ../../AndroidCert.p12 DebugExample.apk DebugExample-app.xml DebugExample.swf
  4. 透過 USB 纜線將裝置連線至除錯電腦。(您也可以使用此程序來除錯模擬器上執行的應用程式,在此情況下,就不需要也不可能使用 USB)。

  5. 安裝應用程式。

    您可以使用 ADT -installApp 命令:

    adt -installApp -platform android -package DebugExample.apk
  6. 使用 Android ADB 公用程式,從裝置或模擬器轉送 TCP 連接埠 7936 至桌上型電腦:

    adb forward tcp:7936 tcp:7936
  7. 在裝置上啟動應用程式。

  8. 在終端機或命令視窗使用 -p 選項執行 FDB:

    fdb -p 7936
  9. 在 FDB 視窗中,輸入 run 命令:

    Adobe fdb (Flash Player Debugger) [build 14159] 
                                        Copyright (c) 2004-2007 Adobe, Inc. All rights reserved. 
                                        (fdb) run
  10. FDB 公用程式會嘗試連線應用程式。

  11. 建立遠端連線時,可以使用 FDB break 命令來設定中斷點,然後使用 continue 命令開始執行:

    (fdb) run 
                                        Player connected; session starting. 
                                        Set breakpoints and then type 'continue' to resume the session. 
                                        [SWF] Users:juser:Documents:FlashProjects:DebugExample:DebugExample.swf - 32,235 bytes after decompression 
                                        (fdb) break clickHandler 
                                        Breakpoint 1 at 0x5993: file DebugExample.as, line 14 
                                        (fdb) continue
備註: AIR 執行階段與 FDB 皆使用連接埠號碼 7936 作為 USB 除錯的預設連接埠。您可以使用 ADT -listen 連接埠參數與 FDB -p 連接埠參數,指定使用不同的連接埠。在此狀況下,您必須使用 Android Debug Bridge 公用程式,將 ADT 中指定的連接埠號碼轉送至 FDB 中指定的連接埠: adb forward tcp:adt_listen_port# tcp:fdb_port#

適用於 iOS 的 USB 除錯程序

為了讓桌上型電腦上執行的 Flash 除錯程式,可以連線裝置或模擬器上執行的 AIR 執行階段,您必須使用 iOS Debug Bridge (IDB,AIR SDK 中的公用程式),將裝置連接埠轉送至桌上型電腦連接埠。

  1. 開啟終端機或命令提示視窗,移至包含應用程式原始碼的目錄。

  2. 使用 amxmlc 編譯應用程式,並啟用除錯:

    amxmlc -debug DebugExample.as
  3. 使用適當的除錯目標 (例如 ipa-debug ipa-debug-interpreter ) 封裝應用程式並指定 ‑listen 選項:

    adt -package -target ipa-debug-interpreter -listen 16000 
                                        xyz.mobileprovision -storetype pkcs12 -keystore Certificates.p12  
                                        -storepass pass123 OutputFile.ipa InputFile-app.xml InputFile.swf
  4. 透過 USB 纜線將裝置連線至除錯電腦。(您也可以使用此程序來除錯模擬器上執行的應用程式,在此情況下,就不需要也不可能使用 USB)。

  5. 在 iOS 裝置上安裝及啟動應用程式。在 AIR 3.4 及更新版本中,您可以使用 adt ‑installApp 透過 USB 安裝應用程式。

  6. 使用 idb -devices 命令 (IDB 位於 air_sdk_root /lib/aot/bin/iOSBin/idb ) 判斷裝置控制點:

    ./idb -devices 
    
                                        List of attached devices 
                                        Handle    UUID 
                                            1     91770d8381d12644df91fbcee1c5bbdacb735500
    備註: (AIR 3.4 及更新版本) 您可以使用 adt ‑devices (而不是 idb ‑devices ) 來判斷裝置控制點。
  7. 使用 IDB 公用程式與上一個步驟中發現的裝置 ID,將桌上型電腦上的連接埠轉送至 adt ‑listen 參數中指定的連接埠 (在此例中,即為 16000,預設為 7936):

    idb -forward 7936 16000 1

    在這個範例中,7936 是桌上型電腦的連接埠,16000 是連線裝置偵聽的連接埠,而 1 是連線裝置的裝置 ID。

  8. 在終端機或命令視窗使用 -p 選項執行 FDB:

    fdb -p 7936
  9. 在 FDB 視窗中,輸入 run 命令:

    Adobe fdb (Flash Player Debugger) [build 23201] 
                                        Copyright (c) 2004-2007 Adobe, Inc. All rights reserved. 
                                        (fdb) run
  10. FDB 公用程式會嘗試連線應用程式。

  11. 建立遠端連線時,可以使用 FDB break 命令來設定中斷點,然後使用 continue 命令開始執行:

備註: AIR 執行階段與 FDB 皆使用連接埠號碼 7936 作為 USB 除錯的預設連接埠。您可以使用 IDB -listen 連接埠參數與 FDB -p 連接埠參數,指定使用不同的連接埠。