7 Replies Latest reply on Jan 27, 2014 7:48 AM by sinious

    Debugging on ipad via usb

    Huwjonesy

      Debugging on ipad via usb: sometimes works, sometimes not; any help on causality would be welcomed.

        • 1. Re: Debugging on ipad via usb
          sinious Most Valuable Participant

          Which version of Flash?

           

          I've had it unable to communicate with my iPads (1/2/3/4/AIR/Retina Mini) tons of times. It always ends up working eventually. I either disconnect/reconnect the iPad or restart Flash Pro or Flash Builder. After that it will work fine for a while.

           

          If you're on OS7, when you connect, be sure to catch the dialog to 'trust' the computer.

           

          I don't think there's any fix for this outside restarting things. iTunes always sees my tablets just fine, it's just Flash that sometimes has a hard time. Just the sheer fact FB can install the IPA on the device for me so all I need to do is touch it to launch makes me happy. I'm willing to put up with the hassle for that .

           

          Just to clarify, this only happens to me after lots and lots of quick code tweaks, publishing rapidly while testing. If there is a decent duration between tests it almost never happens. That's my only lead. Sort of a self defense mechanism from syncing too often.

          • 2. Re: Debugging on ipad via usb
            Huwjonesy Level 1

            Thanks for the reply - it's nice to know somebody else has been having same probs. Just a few details to see how similar problem is: Flash Pro CC, Air 3.8 on an ipad4, so all up to date on the software side at least. What happens is that around 50% of the time the install takes place and debugging commences, all quite quickly (in interpreter mode). Other times, the app is installed on the device but app and flash don't want to talk: message on device: "Adobe Air: Waiting for Connection", output panel on Flash says "Waiting for Player to connect" - if only it would...!

            If you cancel the message on the device you can go ahead and use the app, but with no output back to Flash.

            Anyway, thanks for the suggestions and if any thing else springs to mind let me know - I'll do likewise if I find anything.

             

            I gather by the way that the packaging / installing can be done from the command line - but I'd rather avoid the details of that - I just want to be able to click a button and it works - too much to ask?!

            • 3. Re: Debugging on ipad via usb
              sinious Most Valuable Participant

              Well there's where you missed a couple steps. 3.9 introduced a bit more compatibility with OS7 that ended half my issues connecting with the new RSA fingerprint transmission. However we're now on SDK 4.0, even beyond that.

               

              Download AIR SDK 4.0 here:

              http://www.adobe.com/devnet/air/air-sdk-download.html

               

              Download and extract the contents either where you globally have your SDK or the typical, inside your Flash CC folder (I keep the AIR#.# convention). In Flash CC hit Help->Manage AIR SDK and add a new SDK in there, pointing toward the folder you extract the SDK to.

               

              If Flash Pro doesn't do it for you, open your app config and adjust the SDK version from 3.8 to 4.0 at the top of the XML file.

               

              You can always see what's new in each version (a lot since 3.8) here:

              http://www.adobe.com/support/documentation/en/air/releasenotes.html

               

              That said, don't forget to update Flash Player to 12.0.

              • 4. Re: Debugging on ipad via usb
                Huwjonesy Level 1

                Right, I'll try the updates. I assumed that because the version of Flash Professional was up to date, it would have the latest versions of Air etc with it; the most recent it offers being 3.8. Thanks for the advice.

                • 5. Re: Debugging on ipad via usb
                  sinious Most Valuable Participant

                  That has yet to be an integrated automation. Previously it was quite a bit more work to update the AIR SDK, now it's merely extracting files and pointing to a location. It's getting easier..

                   

                  AIR 4.0 has a new packager which is said to be 10x faster. It also has this possibly relevant bug fix/enhancements:

                   

                  [3635356] compiling in "ipa-debug-interpreter" mode results in PackageExtractionFailed

                  [3667964] Improve error message when app update fails due to certificate issues

                   

                  Flash Player however is the same process. You can grab the latest Flash Player, Debugger, Debug plugin/activex and playerglobal.swc here:

                  http://www.adobe.com/support/flashplayer/downloads.html

                   

                  edit: Just incase it helps..

                   

                  Close Flash CC if it's running.

                   

                  The executables go here (look in the folders and replace with the same file name):

                  C:\Program Files\Adobe\Adobe Flash CC\Players

                   

                  The playerglobal.swc goes inside a folder here (make a folder named something like 'FP12.0'):

                  C:\Program Files\Adobe\Adobe Flash CC\Common\Configuration\ActionScript 3.0\

                   

                  Then duplicate the newest Flash Player XML file you have here and rename it to FlashPlayer12_0.xml:

                  C:\Program Files\Adobe\Adobe Flash CC\Common\Configuration\Players

                   

                  After you rename it, open it in a text editor and change the top of the file to the correct version and location of the playerglobal.swc.

                   

                  e.g.:

                   

                  <?xml version="1.0" encoding="UTF-8"?>

                  <players>

                    <player id="FlashPlayer12.0" version="23" asversion="3">

                     <name>Flash Player 12.0</name>

                     <path builtin="true"/>

                     <path menuSortCategory="10"/>

                     <path platform="WIN">Device Central/adcdl.exe</path>

                     <path platform="MAC">Device Central/adcdl</path>

                     <playerDefinitionPath as3="$(AppConfig)/ActionScript 3.0/FP12.0/playerglobal.swc" />

                   

                  Open Flash CC and you should have a new target, Flash Player 12.0 (and AIR 4). To test you did it all correctly, open a new AS3.0 document, put this in the actions panel in frame 1:

                   

                  import flash.system.Capabilities;

                   

                  trace(Capabilities.version);

                   

                  Should trace: 12,0,0,38

                  You can flip to an AIR project publish target and trace this:

                   

                  import flash.desktop.NativeApplication;

                   

                  trace(NativeApplication.nativeApplication.runtimeVersion);

                   

                  Traces: 4.0.0.1390

                  1 person found this helpful
                  • 6. Re: Debugging on ipad via usb
                    Huwjonesy Level 1

                    Thanks, wasn't able to see the ...\Common\Configuration\ folders you refer to on my (Mac) install of Flash CC.

                    However, I have made some progess in fixing the original problem, which was that the Flash debugger wouldn't always connect to the ipad app:

                     

                    Every time you start a debug session of this sort in Flash, a new idb process is started, you can quite quickly end up with 10 or so after fiddling around for a bit.

                    At some point Flash is going to get confused and fail to connect the debugger with the app.

                    My workaround then, is to quit Flash then force a quit for all idb proccesses, start Flash again and you're away.

                     

                    This is quite a nasty bug because once it stops connecting, even quitting Flash and restarting doesn't fix things because some of the old idb processes are still around.

                    • 7. Re: Debugging on ipad via usb
                      sinious Most Valuable Participant

                      Ah, never caught the Mac part. On Windows, 'adb' does do that time to time. Note that one of those is typically running a bridge server so your devices can be detected.

                       

                      You don't need to quit Flash to do this:

                       

                      Before killing the process you should go shut down the adb server first, then kill any lingering adbs. To do that, navigate to your Android SDK folder in terminal and inside 'platform-tools' you should run the shell command " ./adb kill-server ". You should notice an adb disappear. Keep the terminal open. After that you run that command you can immediately and safely end all the other adb processes.

                       

                      When you're finished killing those processes just restart the server so devices can be detected with " ./adb start-server ". You should see it say that it's starting a server and tell you the port. Check that it detects your device by running " ./adb devices " and verify you see your device (it's a serial number) and that it's reported 'online'.

                       

                      After that you should be able to continue in Flash, never having quit it.

                      1 person found this helpful