USB를 통해 FDB를 사용하여 원격 디버깅

AIR 2.6(Android) AIR 3.3(iOS)

USB 연결을 통해 응용 프로그램을 디버깅하려면 -listen 옵션( -connect 옵션 아님)을 사용하여 응용 프로그램을 패키지화합니다. -listen 옵션을 지정하면 응용 프로그램을 시작할 때 런타임이 TCP 포트 7936에서 Flash Debugger(FDB)로부터 연결을 수신 대기합니다. 그 후 -p 옵션을 사용하여 FDB를 실행하면 FDB가 연결을 시작합니다.

Android의 USB 디버깅 절차

데스크톱 컴퓨터에서 실행되는 Flash Debugger가 장치 또는 에뮬레이터에서 실행되는 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
참고: 포트 번호 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 Debugger가 장치 또는 에뮬레이터에서 실행되는 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 이상) idb -devices 대신 adt -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 포트 매개 변수를 통해 사용할 다른 포트를 지정할 수 있습니다.