Why has my AIR iOs App Size Doubled? - actionscript-3

I'm resubmitting an AIR app to the iOs store after a couple of years. It has mysteriously doubled in size. The android version comes in at just under 30 MB. The ios version is just under 60. I'm trying to figure out if this is something in my code which I should try to track down, or whether this is 'normal' behavior. Has anyone else seen this?
The only thing that I've been able to come up with is that with the advent of Retina, everything has doubled. And/or something to do with iOs7...
Thanks.

Well I did go through Properties - Build Packaging - Package contents and unchecked everything I could. That removed about 4 meg.
But I was building in debug mode. Once I exported a release build, the .ipa was the same size as the .apk generated from the same code. For some reason the debug .apk is nowhere near as bloated as the debug .ipa.
Hope this helps someone else...

Related

unable to run exe created in Qt 5.3 on different windows machine

I am facing issues to run .exe files created in Qt 5.3 on different windows system. I have included all the .dll files. The issue is that on the latest system with graphics card support the application runs without any issues but on older systems it just gives blanck screen.
I suspect that this has something to do with openGL support for the system.
Is there a way where I can make sure that the application runs without any glitches on all the systems?
Or is it possible to have an application created without oprnGL support needed ?
Hoping to hear some solution for this.
Thanks in advance.
EDIT:
Following is the error I get when I run the code
getProcAddress: Unable to resolve 'glBindFramebuffer'
getProcAddress: Unable to resolve 'glBindFramebufferOES'
getProcAddress: Unable to resolve 'glBindFramebufferARB'
and here is the screenshot of the way the screen looks
NOTE :
Please note that when I run the .exe on a new system with updated graphics, the screens looks perfect.
Did you include any OpenGL headers in your Qt Project?
Because if you did then there is obviously going to be a dependency on OpenGL for each system and if one of them cannot support this then you either need to decrease the minimum version of GL you are using or remove these headers altogether. It is also worth noting that no matter how hard you try - you will never get the same version of OpenGL to run across every piece of hardware without having to change something.
Did you add the QtOpenGL module?
From what is sounds like, you are not using OpenGL in your application. If this is true then you should remove this module from your .pro file and it should remove the dependency.
I hope this answers your question. If not, could you provide a little more detail because your question was slightly vague.

ADT works with ipa-test-interpreter but not ipa-test

I could use some help getting my #AS3 / #AIR application running on #iOS !
Right now I have a .SWF (v11) that I'm converting to an .IPA using Adobe AIR (v3.7) on Windows (7).
If I do the conversion with the -target of ipa-test-interpreter it works great.
If I do the conversion with ipa-test, ipa-debug, ipa-ad-hoc, or ipa-appstore, the application seems to compile fine but upon execution of the app on my iPad it just shows a black screen.
Connecting my iPad to a desktop and monitoring console output, I see not crash or error messages generated; the app appears to behave fine internally, it's just lost all external output.
This means I can test and develop but I won't ever actually be able to deploy to the app-store. Anyone else run into this?
Googling around I've run into other people encountering this problem, but no solutions yet. One thing I tried was removing all native extensions, and I also tried removing the -C compiler directive. No luck on either.
To be clear, the app runs totally fine on Mac, PC, Android, Browser, and on iOS in interpreter mode; it's just native-compilation on iOS that's broken. I've heard rumours that ipa-test and ipa-interpreter have different memory allocation routines, but I don't know enough about the low-end here to figure this out.
The remote debugger (in FlashDevelop) doesn't seem to connect either. I think it's failing before the runtime fires fully, somehow? I'm also watching the console output using the iphone-configuration-utility and there isn't anything abnormal showing up.
Temporary file link with sample project and instructions: https://dl.dropboxusercontent.com/u/1348446/test.zip
Figured it out. Rundown:
The ADT command line has a -C flag to change the current working directory on the command line, which allows you to keep your project better organized and keep the command line a bit more sane. -C can be called as many times as you want when importing assets, and I used it several times. IDEs like FlashDevelop also use -C in the AIR template files so this is sorta standard behaviour. As a quick example of asset inclusion:
ADT.exe [blah blah] assets/icons/icon1.png assets/icons/icon2.png
is the same as
ADT.exe [blah blah] -C assets/icons icon1.png icon2.png
(and, with wildcard use) is the same as
ADT.exe [blah blah] -C assets/icons .
As I have different compiling instruction sets for iOS, android, steam, etc., I had adt switch directories with a variable to the current config and execute from there.
This all works fine and as-documented in ipa-test-interpreter mode. When in native-code mode (ipa-test), however, including the main executable .SWF after a -C command [somehow for some reason] messes up the internal pathing; the file ends up being included but ends up being all "file not found" internally when executed, hence the blank screen and no code executing.
So the fix is simply to include the .swf from the current directory, before any calls to -C. As a quick example of my workaround that just tested a-okay:
copy /bin/flash/game.swf ./
adt [stuff] game.swf -c assets/icons .
del game.swf
I've gotten in touch with Adobe about this and hopefully they'll fix -C so it's functionality is the same for both compile targets in the future.
I have seen this happen in the past due to utilization of components "restricted" from use within iOS builds of Air apps. Specifically back in the day before being able to sandbox the loading of app resources with the loader class.
Start shutting down and turning off whole modules of your app and see when the app will build and run on iOS. I'm willing to bet there is some code somewhere that is ipa-test-interpreter safe but has odd behavior under ipa-test
I see you're still stuck with this issue. If you can find a Mac to test on, I bet xcode instruments will show you're exceeding you're memory limits. It is the iPad one right? Are you using flash's embed meta tags?
Is Black your swf background color? If it is, maybe it's a cross domain loading issue because you're loading your swf and app.xml from 2 different places. I don't know if this is causing it, but I usually keep them in the same place.
Have you ever seen your provision & p.12 work on a device? If not, it might be a problem with them.
What IDE are you using to make this, Flash IDE or Flash Builder, Flash Develop/ANT? And if you post src code it would help. Sometimes putting your metadata in the wrong place can screw things up on iOS but look fine in the browser...so it could be many things.
Good luck.

Flash Builder 4 changes not compiled

Im using Flash Builder 4 on the Mac and I have a worrisome problem: The compiler is sometimes not detecting my code changes.
For example I might write some code, compile and run, then add some logging statements, but they will not print. After a clean compile everything runs as expected.
I cannot see a pattern to the exclusion of changes. I'm wondering if anyone else is having the same problem?
Details:
Flash Bulider 4
Pure AS3 project targetting Flex3.5 SDK
Max OS X Snow Leopard
My code does not use semicolons to terminate statements
The problem is with the SDK settings selected for the Compiler.
Try going to 'Project' > 'Properties' > 'ActionScript Compiler'.
Now, in the 'Flex SDK section', try changing the SDK. Click on 'Apply'.
This will force FB to rebuild all settings for the project.
You can try again. FB should now have started compiling with latest code changes again.
Please Note: This is not a permanent fix though!
In case the problem re-occurs, you'll need to again perform the steps mentioned above to get FB back on track.
As bad as it sounds, I am now used to this behavior, I use FB4 on a Mac , but remember having the same issue with Flex.
Practically, I keep clearing the browser cache and cleaning the project. I have thought about adding some random number after the swf url so that it never gets cached but haven't implemented it yet. Force of habit I guess, clearing the cache & cleaning the project has become such a routine!

AS3 Embedding assets - "Warning: Failed to parse corrupt data"

I've got an AS3 project where I'm trying to compile in several images, a soundtrack, and a video via [Embed] metadata. It's a product requirement that these be embedded, so network transfer is not an option.
I'm getting some really strange behavior - a sort of intermittent corruption of the compiled-in data. Sometimes after the project compiles, I run the swf and it closes immediately and writes "Warning: Failed to parse corrupt data" to the flash log. If I delete the binary and clean the project, sometimes it'll run fine after building it again. Sometimes it doesn't.
This is probably the strangest part about this problem, but sometimes when I see that error, I can physically move the video [Embed] lines to the end of the file, then clean the project, and it will build and run no problem. Sometimes I move them back to the beginning of the file and it builds and runs fine.
It kinda seems like it might be a bug in the compiler. Has anyone else experienced something similar? I'm targeting Flash 10.1 and using sprout (http://projectsprouts.org) to build my project. This is the mxmlc line that's being used to compile (mxmlc Version 4.1.0 build 16076):
mxmlc -as3 -static-link-runtime-shared-libraries=true -debug -default-background-color=#ffffff -default-size 712 400 -output=bin/ProjectName.swf -source-path+=.preprocessed/src -source-path+=.preprocessed/assets .preprocessed/src/ProjectName.as
I've tried both removing the -debug compiler option and adding the -optimize option, but no luck.
Everything is being ran through the GNU C preprocessor for some other tasks, so maybe I'll try removing the preprocessor stuff and hardcoding those variables...I'll try that and post the results tomorrow.
Any insight at all would be much appreciated. Thanks!
EDIT:
This project is going to be compiled dynamically with different assets being embedded into the same codebase, so switching to something like Flash Builder for compilation really isn't an option...it must be done via command-line mxmlc.
UPDATE:
Turns out the corrupted data message was due to images created with Photoshop's "Save for web" feature. If I save them outright as PNG images I don't get the message. However, the intermittent nature of the movie compiling properly still seems to be an issue. Now sometimes when the project is compiled it won't throw any compiler errors, but I get a blank flash player window. Right clicking in flash player shows a context menu with a message that says "Movie not loaded..." This doesn't appear to have anything to do with things being ran through CPP first.
[Screenshot]
This is apparently a bug in mxmlc under Mac OS X. After posting this, I observed some other really strange behavior, so I switched the whole codebase to Windows 7. Everything works as expected there (still using Project Sprouts as a build tool).
Flash builder is fine with it.
Can you separate your issue for video or music only, or issue is true for both includes?

MonoDevelop and Screen Orientation

I know application questions belong on super user but since this is an IDE I thought I might try it here.
For a couple months now, MonoDevelop likes to appear on my second monitor maximized when I start it up. I have to unmaximize it and move it over each time.
I thought it was some weird preference setting I had messed with but I recently install Windows 7 and the first thing I did was get Monodevelop back up and running. It still goes to that second screen.
Anyone know why?
It might be a GTK+ Gdk.Screen issue. AFAIK none of the core MD devs have dual-screen setups - and definitely not on all platforms. Best thing to do would be to file a bug.