AIR for iOS app crashes on iOS 5.1 - ios

I am developing an AIR app which packages multiple video files in swf format.
Users of the app are supposed to create a movie by creating a sequence of these swf files. The ipa file size is around 200MB.
I have done some graphic optimizations such as using bitmaps wherever possible, avoid using filters and blend modes etc.
The app works just fine on iOS6/iPad3 however it crashes on iOS5.1/iPad3. After checking device logs using xcode on Mac, it appears that the app is crashing because of low memory. The real problem seems to be loading of swfs which keeps adding on to memory usage with every swf load. The Loader.unload() method does not work on iOS, so it seems that I have hit a dead end. I have no clue as to how to tackle this memory issue without unload.
I tried the latest AIR SDK 3.6 Beta, but the video swfs just don't load and hence I cannot use the application. I had specified loader context with application domain set to current domain. According to adobe labs page they have added support for packaging and loading of multiple swfs and better memory management in AIR 3.6, however until I can load the swf its of no use to me.
I am using following setup:
Flash Professional CS6
AIR SDK 3.5.0.600
iPad 3/iOS 5.1
I would really appreciate any help in this regard.

Maybe helpful in your situation either: I had constant crashes when working with video in AIR 3.5. Setting the render mode to direct helped to workaround this bug of the AIR runtime. Have you tried it?

Related

Forge viewer crashes after loading some large models

I have been trying to load the model over 200MB on the ios app, but the viewer crashes after loading a few seconds. In the web inspecter, it returns many 404 errors. This error only happens on the ios app and not happens on the android app.
In my mind, I think it is related to the memory limit. I check the document of viewer v7 Allocate Memory for Large Models and Update memory limit but with no fortunate. How could I load the large model on ios app with forge viewer?
Ok based on my colleague's experience, Ionic suffers from web performance problems on mobile, such as 'animation jank', Navigation bugs, keyboard popup bugs with Form input and memory bloat, which could be the main reason why the Viewer is running out of memory.
I will suggest maybe trying React Native. These apps are written in javascript, where the JSC/V8 engine creates & manipulates Native UI components for both iPhone and Android platforms. This gives your app speed and the buttery smooth animation, of a typical native app written in Xcode/Swift and Android Studio/Java. Hence, React Native app's don't suffer the problems that Cordova/Ionic do.
Here is a blog post to help you develop the app.
https://forge.autodesk.com/blog/forge-react-native-au-talk

Warning in Adobe Air for iOS:ActionScript contained in externally loaded SWF files will be ignored on iOS devices

I am trying to download an external swf with (as3 file) actionscript. I am using Adobe Air to publish to iOS.
On publishing it in iOS, I am getting following warning - "ActionScript contained in externally loaded SWF files will be ignored on iOS devices"
I have uploaded a demo zip file with my code. Plz have a look.
https://onedrive.live.com/redir?resid=1C7E2FDD9D014F66!134&authkey=!APGyYi0V2b_EjWQ&ithint=file%2c.zip
I am using adobe flash professional cs6. Air SDK version is 13.0.0.83
Thanks for your help!
Per Packaging and loading multiple SWFs in AIR apps on iOS:
AIR on iOS requires that all the ActionScript code of an application be present in the main SWF or the root SWF.
Dynamically loading a remote SWF that contains ActionScript code will not work on iOS; nor will embedding SWFs using the [Embed] meta tag.
I was using Adobe Flash Professional CS6 thats why it was giving as warning.Now i am using Adobe Flash Professional CC then its working properly.
Adobe has introduced a way to load secondary .swfs with code.
http://blogs.adobe.com/airodynamics/2013/03/08/external-hosting-of-secondary-swfs-for-air-apps-on-ios/
They get around the Apple limitation by embedding the AS in the app at build time -- but not the assets. When the .swf is loaded dynamically, it loads the assets and reunites it with the code. A great way to keep app file size down.

how does the performance speed differ between Flash App(compiled by Air) on iPad2 and Flash runs on iPad2 Flash browser?

I'm planning of developing iPad Game but currently I don't own Mac or the apple dev license yet and I'd like to do some performance examination before even bother to buy them.
My iPad2 has a Web Browser App called puffin which can run Flash on the internet. And I was wondering if you made Flash iPad App using Adobe Air, will it run as fast as the Web Flash version that runs on puffin?
I imagine Flash through puffin would perform less well than one made with Adobe Air.
Puffin is able to achieve Flash on iOS by running the Flash code remotely on their servers, and then sending the results back to the device. This involves a lot of travelling time over the air, and could potentially cause quite a bit of latency.
Adobe Air is native code running on the device; this is basically the best you'll get for running Flash code locally. Both are natively supported by Adobe, meaning it's the best support you'll get as well.
Using Adobe Air means you can reach a wider audience, your game can be on the App Store for all to see. If you only made it available via puffin, you're restricting your audience to owners of the puffin app (I've never heard of puffin before, I imagine a lot don't), and people who know the URL for your game. A lot of apps on the app store already are made with Adobe Air, and they have no performance problems.

Can I test Flash CS5 iOS published SWF's or ipa's without having to load them onto the iPhone every single time?

As per the title, is there a simulator or a way for Adobe Device Central to read CS5 created iOS published SWF's or ipa's for testing purposes?
At the moment, I make a change in Flash CS5, publish the SWF and IPA, delete the old version from my phone, drop the new IPA in, re sync and test. This is not good for the workflow.
What are the options for testing and developing?
EDIT:
I am on a Windows machine (Windows 7).
What i do mostly is this.
Change the flash player from iOS to flash lite and run the program in Device Central.
Works perfect.
If you're up for using the Simulator instead, this question could help you load them into the Simulator. Not sure if there are any compatibility issues, but the Simulator does tend to load significantly faster than loading to the phone, IME.

Does Google Analytics Tracking for Flash works in packaged air application for IOS?

I'm building an air application (using adt packager) for iPad. I would like tracking some informations in my app so is it possible to embed Google Analytics library for Flash (.swc) in my packaged app ?
otherwise are there alternatives ways ?
Note: Currently, Flash tracking is available for any Flash content embedded in a web page. Tracking of data sent from Adobe Air, Shockwave, or via the Flash IDE (e.g. using Test Movie) is not supported at this time.
got this from https://developers.google.com/analytics/devguides/collection/other/flashTrackingIntro
I am having better luck with this alternative native extension (ANE) for iOS and Android:
https://github.com/alebianco/ANE-Google-Analytics
GAForFlash (http://code.google.com/p/gaforflash/) v1.0.1.319 did work for me when compiling with AIR and running in ADL on Windows, but seems to work intermittently when compiling and running it on an Android or iOS device. The visual debug feedback reports it always sending correctly, but half the time GA never receives the data.
Both solutions can send both pageViews and events, but neither (currently) works with the new mobile app GA profiles so you need to use a classic web profile.
It is possible. I have it running in my pure AS3 AIR project for mobile.
See http://code.google.com/p/gaforflash/ there is a swc you can use there.

Resources