通过 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 SDK 中获取的实用工具 Android Debug Bridge (ADB) 将设备端口转发到桌面端口。

  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
注: 端口号 7936 用作默认端口,可以供 AIR 运行时和 FDB 进行 USB 调试。您可以使用 ADT -listen 端口参数和 FDB -p 端口参数指定不同的端口。在这种情况下,您必须使用 Android Debug Bridge 实用程序将 ADT 中指定的端口号转发到 FDB 中指定的端口: adb forward tcp:adt_listen_port# tcp:fdb_port#

iOS 的 USB 调试步骤

为了让在桌面计算机上运行的 Flash 调试器连接到在设备或模拟器上运行的 AIR 运行时,您必须使用从 AIR SDK 中获取的实用工具 iOS Debug Bridge (IDB) 将设备端口转发到桌面计算机端口。

  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 命令开始执行:

注: 端口号 7936 用作默认端口,可以供 AIR 运行时和 FDB 进行 USB 调试。您可以使用 IDB -listen 端口参数和 FDB -p 端口参数指定不同的端口。