Debug remoto con FDB via USB

AIR 2.6 (Android) e AIR 3.3 (iOS)

Per eseguire il debug di un'applicazione tramite una connessione USB, potete creare il pacchetto dell'applicazione usando l'opzione -listen anziché -connect . Quando specificate l'opzione -listen , il runtime resta in attesa di una connessione in entrata dal debugger Flash (FDB) sulla porta TCP 7936 nel momento in cui avviate l'applicazione. Eseguite quindi FDB con l'opzione -p per avviare la connessione tramite FDB.

Procedura di debug via USB per Android

Affinché il debugger Flash in esecuzione sul computer desktop possa connettersi al runtime AIR in esecuzione sul dispositivo o l'emulatore, dovete usare l'utilità ADB (Android Debug Bridge), inclusa in Android SDK, oppure l'utilità IDB (iOS Debug Bridge), inclusa in AIR SDK, per instradare la porta del dispositivo alla porta del desktop.

  1. Aprite una finestra di terminale o di prompt dei comandi e accedete alla directory che contiene il codice di origine dell'applicazione.

  2. Compilate l'applicazione con amxmlc, abilitando il debug:

    amxmlc -debug DebugExample.as
  3. Create il pacchetto dell'applicazione usando il target di debug appropriate (ad esempio apk-debug ) e specificate l'opzione -listen :

    adt -package -target apk-debug -listen -storetype pkcs12 -keystore ../../AndroidCert.p12 DebugExample.apk DebugExample-app.xml DebugExample.swf
  4. Connettete il dispositivo al computer di debug con un cavo USB. (Potete seguire questa procedura anche per eseguire il debug di un'applicazione in esecuzione su un emulatore, nel qual caso una connessione USB non è necessaria, né possibile.)

  5. Installate l'applicazione.

    Potete usare il comando ADT -installApp :

    adt -installApp -platform android -package DebugExample.apk
  6. Instradate la porta TCP 7936 dal dispositivo o emulator al computer desktop utilizzando l'utilità Android ADB:

    adb forward tcp:7936 tcp:7936
  7. Avviate l'applicazione sul dispositivo.

  8. In una finestra di terminale o di comando, eseguite FDB con l'opzione -p:

    fdb -p 7936
  9. Nella finestra di FDB, digitate il comando run :

    Adobe fdb (Flash Player Debugger) [build 14159] 
                                        Copyright (c) 2004-2007 Adobe, Inc. All rights reserved. 
                                        (fdb) run
  10. L'utilità FDB tenta di connettersi all'applicazione.

  11. Quando viene stabilita la connessione remota, potete impostare dei punti di interruzione con il comando FDB break e quindi avviare l'esecuzione con il comando 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
Nota: la porta numero 7936 viene utilizzate come porta predefinita per il debug via USB sia dal runtime AIR che da FDB. Potete specificare porte differenti con il parametro di porta ADT -listen e il parametro di porta FDB -p. In questo caso dovete usare l'utilità Android Debug Bridge per instradare il numero di porta specificato in ADT alla porta specificata in FDB: adb forward tcp:adt_listen_port# tcp:fdb_port#

Procedura di debug via USB per iOS

Affinché il debugger Flash in esecuzione sul computer desktop possa connettersi al runtime AIR in esecuzione sul dispositivo o l'emulatore, dovete usare l'utilità IDB (iOS Debug Bridge), inclusa in AIR SDK, per instradare la porta del dispositivo alla porta del desktop.

  1. Aprite una finestra di terminale o di prompt dei comandi e accedete alla directory che contiene il codice di origine dell'applicazione.

  2. Compilate l'applicazione con amxmlc, abilitando il debug:

    amxmlc -debug DebugExample.as
  3. Create il pacchetto dell'applicazione usando il target di debug appropriate (ad esempio apk-debug o ipa-debug-interpreter ) e specificate l'opzione -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. Connettete il dispositivo al computer di debug con un cavo USB. (Potete seguire questa procedura anche per eseguire il debug di un'applicazione in esecuzione su un emulatore, nel qual caso una connessione USB non è necessaria, né possibile.)

  5. Installate e avviate l'applicazione sul dispositivo iOS. In AIR 3.4 e versioni successive, potete usare adt -installApp per installare l'applicazione via USB.

  6. Determinate l'handle del dispositivo con il comando idb -devices (IDB si trova in air_sdk_root /lib/aot/bin/iOSBin/idb ):

    ./idb -devices 
    
                                        List of attached devices 
                                        Handle    UUID 
                                            1     91770d8381d12644df91fbcee1c5bbdacb735500
    Nota: (AIR 3.4 e versioni successive) Potete usare adt -devices anziché idb -devices per determinare l'handle del dispositivo.
  7. Instradata una porta del desktop alla porta specificata nel parametro adt -listen (in questo caso, 16000; la porta predefinita è 7936) utilizzando l'utilità IDB e l'ID dispositivo trovato nel passaggio precedente:

    idb -forward 7936 16000 1

    In questo esempio, 7936 è la porta desktop, 16000 è la porta sulla quale è in ascolto il dispositivo connesso e 1 è l'ID dispositivo del dispositivo connesso.

  8. In una finestra di terminale o di comando, eseguite FDB con l'opzione -p:

    fdb -p 7936
  9. Nella finestra di FDB, digitate il comando run :

    Adobe fdb (Flash Player Debugger) [build 23201] 
                                        Copyright (c) 2004-2007 Adobe, Inc. All rights reserved. 
                                        (fdb) run
  10. L'utilità FDB tenta di connettersi all'applicazione.

  11. Quando viene stabilita la connessione remota, potete impostare dei punti di interruzione con il comando FDB break e quindi avviare l'esecuzione con il comando continue :

Nota: la porta numero 7936 viene utilizzate come porta predefinita per il debug via USB sia dal runtime AIR che da FDB. Potete specificare porte differenti con il parametro di porta IDB -listen e il parametro di porta FDB -p.