Locked

AIR SDK 16.0.0.283 : iOS - IPA Size

Participant ,
Jan 22, 2015 Jan 22, 2015

Copy link to clipboard

Copied

The new SDK seems to have added an extra 3.5MB on ipa (release) depending on the app.

On the basic app that does nothing it adds 3.5MB, on one of our apps it added 7MB.

Anybody else got a size increase?

TOPICS
Air beta

Views

8.3K

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Jan 25, 2015 Jan 25, 2015

Copy link to clipboard

Copied

Hi Joseph,

The new compiler compile universal binaries for IOS that mean that you have a 32bit and a 64bit binaries in the ipa package, so the size increase is normal.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 02, 2015 Feb 02, 2015

Copy link to clipboard

Copied

When i moved from SDK 15 where application size was about 70MB, to SDK 16 where size is around 120MB i cannot publish app because of Apples size limit around 80MB. I assume that i get both 32bit and 64bit code in the IPA, and this the reason of double IPA size, am i correct???

Do Apple plan to extends the limits, after adding new architecture? If not, how can i compile my project for only arm64 architecture?

I cannot fint any options to build IPA on windows for only arm64. Can someone provide any help?

Do i have to build on Mac, and set some extra fancy super-cool features that will make my app contain only 64bit code? I cant find any solid information about that on the internets...

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Feb 02, 2015 Feb 02, 2015

Copy link to clipboard

Copied

There is no apple size limit (well I think it is 2GB) so I am not sure where you saw such limit on ipa

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 02, 2015 Feb 02, 2015

Copy link to clipboard

Copied

I get

ERROR ITMS-90122: "Invalid Executable Size. The size of your app's executable file is 102776832 bytes which exceeds the maxium size of 80MB.

iaegggag.png

Can anyone provide some help on my other questions? Why do i get double size? Can i compile only for arm64 architecture?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Feb 02, 2015 Feb 02, 2015

Copy link to clipboard

Copied

It seems that you are embedding all the resources in the main executable?

It is usually a bad practice (even the 70MB is a bit large).

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
Feb 02, 2015 Feb 02, 2015

Copy link to clipboard

Copied

Hi,

With the current SDK it is not possible to compile only for arm64 architecture. You can log an enhancement bug in bugbase.adobe.com.

Thanks,

Adobe Air Team

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 02, 2015 Feb 02, 2015

Copy link to clipboard

Copied

*.swf file has only 5MB before packaging to IPA, most of the resources are loaded in runtime. There are some embeded skins, but for sure not 70MB...

I can not understand how it grows to 70, i dont even think how it grows to 102...

I wrote to Apple developer support to increase executable size limit, but is there really no way to do something about executable size in IPA? No compiler params or something?

Can i check if armv6 is also included? Can i disable armv6 architecture?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Feb 02, 2015 Feb 02, 2015

Copy link to clipboard

Copied

ArmV6 is no longer included, so you can't remove it, it isn't there.

Sounds like you are using a lot of sprite sheets in a Starling game. Using Embed will put all of those into the application, they won't remain external. You could look at tinypng.com, using that, or buying their Photoshop plugin, could dramatically reduce the size of your file.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 22, 2015 Feb 22, 2015

Copy link to clipboard

Copied

Did you manage to solve this? I have the same issue. Executable is about 93 mb, and get the Error that Executable needs to be under 80 Mb

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Feb 22, 2015 Feb 22, 2015

Copy link to clipboard

Copied

‌Anyone with this issue:

Rename IPA to ZIP and open it. Find your binary file inside and check it size firstly and report it here

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 24, 2015 Feb 24, 2015

Copy link to clipboard

Copied

I have the same problem. My Unix Executable is over 500 MB and there is no way I can get it down to something like 80 MB. I've attached a screenshot of the contents of the .ipa file. Is there some workaround where a small executable can serve as the main file which simply links to the big executable?? Love to hear any suggestions/angles/options. Thanksscreencap.jpg

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Feb 24, 2015 Feb 24, 2015

Copy link to clipboard

Copied

Do you use [Embed] tag in your AS3 code?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 24, 2015 Feb 24, 2015

Copy link to clipboard

Copied

Hi, yes I do. I think the problem comes from the large number of AS3 classes that all get compiled into the 1 executable. As text, the AS3 classes aren't more than 1 MB or so. Its the compiling that's making them huge. Is there a workaround?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Feb 24, 2015 Feb 24, 2015

Copy link to clipboard

Copied

When you use "embed" you are embedding the assets in the executable.

The compiled classes are not that large, usually you would have images, audio, fonts and videos. Instead of using embed load these dynamically (and unload when not used).

This will keep the size of your executable small.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 24, 2015 Feb 24, 2015

Copy link to clipboard

Copied

The media assets are loaded during runtime. You can see from my screenshot, all assets are in the folders Library, Img and Modules. They have a combined size of around 260MB. The 500+ MB executable comes from compiling about 1,700 separate AS3 classes. As .as files, they are around 20MB (see below). The extra size is coming when they are compiled for iOS.Screen Shot 2015-02-24 at 16.56.44.png

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Feb 24, 2015 Feb 24, 2015

Copy link to clipboard

Copied

I have not seen something like this before.

I think it might be a bug with the compiler, but Adobe would need access to your project files in order to investigate it further.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Feb 24, 2015 Feb 24, 2015

Copy link to clipboard

Copied

You can privately contact me via therabbitflash skype chat and show your files so may be I can advice something

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 24, 2015 Feb 24, 2015

Copy link to clipboard

Copied

Are you loading any swf files into the main.swf? In that case, publish for Flashplayer xx for all the "load in" swf, instead of AIR SDK

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Feb 24, 2015 Feb 24, 2015

Copy link to clipboard

Copied

I think I see what he thinks is going on. If I'm right the 1,679 swfs all had code in them, and he ran the command line to make the AS3 get stripped out, and be included in the main code. If that does add a little bit of overhead for each swf, 1,679 sets of overhead could add up.

Would it be possible to have the swfs as library movieclips instead? That would only add 20 MB to the main swf, making it still only be 21 MB, and hopefully all classes that are duplicates would get shared when it's compiled.

BTW, the documentation I can find says the executable needs to be no more than 60 MB, not 80 MB, and the wording is confusing. It reads as if they mean the .app file, which clearly is over 60 MB for a lot of apps. It would be a relief if they mean the Unix executable file. Those are as little as 10 MB for my apps.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 24, 2015 Feb 24, 2015

Copy link to clipboard

Copied

I think I see what he thinks is going on. If I'm right the 1,679 swfs all had code in them, and he ran the command line to make the AS3 get stripped out, and be included in the main code. If that does add a little bit of overhead for each swf, 1,679 sets of overhead could add up.

Yes, you are correct. I have 1700 flash files that are linked to 1700 separate .as AS3 files. As far as I know, all AS3 must be compiled into a single executable.

Would it be possible to have the swfs as library movieclips instead? That would only add 20 MB to the main swf, making it still only be 21 MB, and hopefully all classes that are duplicates would get shared when it's compiled.

As far as I know, the AS3 compiled in these swfs would not be allowed to run as they are loaded in iOS. Also, no classes are duplicates.

I see 2 solutions:
• Somehow creating a stub executable to link to the main monster. But I don't know if that is possible  within the iOS app structure (i.e. signing/certificate issues)
• Some workaround that allows the AS3 to be executed at runtime. i.e. loading from text.

I'd appreciate any input or suggestions.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Feb 25, 2015 Feb 25, 2015

Copy link to clipboard

Copied

At the moment you must be using a loader to bring the swf in at runtime, I was suggesting that instead of an external swf you have an internal movieclip. When you want a particular swf you would say:

var aswf:MovieClip = new NameOfSwf() as MovieClip;

addChild(aswf);

The base class of the movieclip in the library would be the existing document class of that particular swf. It would all get compiled in one go when you publish.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 24, 2015 Feb 24, 2015

Copy link to clipboard

Copied

‌I managed to find out why. I had 36 swf files, and some of them were compiled with Air SDK, so every time you use that for a swf, executable increase about 18 mb.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Feb 24, 2015 Feb 24, 2015

Copy link to clipboard

Copied

You booth doing something wrong. My binary always not more than 18 mb because I use external data loading without any resource embedding inside.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Mar 04, 2015 Mar 04, 2015

Copy link to clipboard

Copied

I think the problem is in the large number of classes. I made very simple test:

1. compiled application with single *.mxml file with two buttons insde - 1 spark and 1 mx button (flex 4.6.0)

CODE EXAMPLE:

<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark" layout="absolute" >

    <mx:Button />

    <s:Button />

</mx:Application>

2. decompiled swf which had 285KB - no embeded assets inside, just spark and mx components.

3. packaged with latest official AIR sdk 16 ... and it comes out that the executable size is 22MB! WTF?

ios.PNG

So, lots of my as3 classes + many as3 libraries, NO EMBED used in code and the result is 107MB executable.

What do you suggest now?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines