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
New Here ,
Apr 10, 2015 Apr 10, 2015

Copy link to clipboard

Copied

Hi all,

Good solution is to extract arm64 code from application binary, and than re-sign *.ipa file that contain only 64bit code.

https://books.google.pl/books?id=5gVhBgAAQBAJ&pg=PA55&lpg=PA55&dq=otool+remove+architecture&source=b...

http://dev.mlsdigital.net/posts/how-to-resign-an-ios-app-from-external-developers/

i tested this on ad-hoc ipa, works fine.

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 ,
May 09, 2015 May 09, 2015

Copy link to clipboard

Copied

After hitting this issue today and doing some direct research, it turns out that adding "-swf-version=28" to my Flash Builder 4.7 compiler arguments was causing this ITMS error.  Removing this directive allowed my app to upload to TestFlight as before.  In my case, I'm using AIR 17 (latest release) overlaid on Flex 4.6 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
New Here ,
May 13, 2015 May 13, 2015

Copy link to clipboard

Copied

I have the same problem. Any solution?

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 ,
May 13, 2015 May 13, 2015

Copy link to clipboard

Copied

ITMS have more than 10 000 codes. Show your full description.

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 ,
May 13, 2015 May 13, 2015

Copy link to clipboard

Copied

I get

ERROR ITMS-90122: "Invalid Executable Size. The size of your app's executable file 'Markets.app/Markets' is 86671360 bytes, which exceeds the maximum allowed size of 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 ,
May 15, 2015 May 15, 2015

Copy link to clipboard

Copied

Do you use Embed tag in your AS3 code?

Touch me via Skype therabbitflash will try to solve your issue fast

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 ,
May 15, 2015 May 15, 2015

Copy link to clipboard

Copied

I found best solution i could expect after i had little nice chat with Apple's developer helpdesk.

This is response from Apple developer support specialist:

Thanks for contacting Developer Technical Support. The size limits for binaries are not well documented, so I can understand your confusion. Size limit vary depending on the minimum OS for your app. 

Your app has a minOS of 5.1.1, so iTunes Connect is enforcing an older binary limit of 80MB for the entire binary (the total of all slices).

If you had a minOS of iOS 7 or higher, you’d see limits of 60MB per slice. (This is due to changes in the OS to allow for larger individual slices.)

You are correct that the limit is on the __TEXT section.

The most expedient way to resolve this issue is to increase your minimum OS requirements to at least iOS 7. According to the most recently information on our Developer website, 98% of devices are using iOS 7 or 8.

(slice) - code compiled for one of architectures, we have two slices armv7 and arm64

So you need to set MinimumOSVersion in application XML:

<InfoAdditions>

            <![CDATA[

              <key>UIDeviceFamily</key>

            <array>

            <string>2</string><!-- iPad -->

            </array>

            <key>MinimumOSVersion</key>

            <string>8.0.0</string>

  ]]>

        </InfoAdditions>

And BOOM - you get 120mb limit!

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 Expert ,
May 15, 2015 May 15, 2015

Copy link to clipboard

Copied

Thanks for reporting back. To be clear on one thing, you would have got the 120 MB limit under iOS 7 too, you didn't have to jump to iOS 8?

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 11, 2016 Feb 11, 2016

Copy link to clipboard

Copied

I tried adding the MinimumOSVersion key to my application XML for a project packaging from Flash Builder 4.7 and it produces an invalid InfoAdditions error.  I'm packaging with AIR SDK 20.  It looks like the default value put in the info.plist if I don't specify a value in my application XML is 6.0 (determined by unziping the IPA and viewing package contents).

Is there a way to specify this or do I have to use the fixed SDK version?  Is my only choice to change the value manually in the published IPA?  Will that even work?

Thanks in advance for any help.

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 17, 2016 Feb 17, 2016

Copy link to clipboard

Copied

For anyone else struggling with this I did want to mention that I was able to manually change the MinimumOSVersion from 6.0 to 8.0 in the Info.plist of the packaged application.  I couldn't figure out any way to do this within Flash Builder and it does seem tied to the specific AIR SDK that is being used to package the app.

Unfortunately this does only give an 80MB cap for the binary, not 120MB as someone previously posted.  It was interesting since Apple's Application Loader didn't give me an error on validation and did complete adding the build to iTunes Connect, but did get an email indicating an Invalid Executable Size and mentioning the 80MB limit.

I do think I've managed to remove the 32-bit portion of the binary though using the "thin" from the command line and changing other required elements in the Info.plist.  I can post details here after I'm done testing if anyone is interested.

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 ,
Oct 04, 2016 Oct 04, 2016

Copy link to clipboard

Copied

Are there any news?

I have the same problem and I were not able to fix it

*copypaste*

The problem is the 60MB filesizelimit for armv7! (See Screenshot)

There are almost no embedded images or something like that. the application-file is only 0,5MB to big, but I'm sure it will increase soon due to next updates

Are there any possibilities to reduce the application size? Or maybe to change some settings for excluding the armv7 and only build for 64bit?

Our App is online since a couple of years and now we got "too big"? I see no possibility to "reduce" the code.

I build with AIR 22 and compiler options "-optimize=true -strict=true"

<iPhone> <InfoAdditions> <![CDATA[ <key>UIDeviceFamily</key> <array> <string>2</string> </array> <key>UIFileSharingEnabled</key> <true/> <key>MinimumOSVersion</key> <string>8.0</string> ]]> </InfoAdditions> <requestedDisplayResolution>high</requestedDisplayResoluti‌​on> <Entitlements> <![CDATA[ <key>get-task-allow</key> <false/> <key>beta-reports-active</key> <true/> ]]> </Entitlements> </iPhone>

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 ,
Aug 28, 2015 Aug 28, 2015

Copy link to clipboard

Copied

Hi guys,

I appreciate a solution would be to bump up the min OS version,

unfortunately I'm not in that position and the app size is incredibly high.

Did anyone find a solution to reduce the executable size?

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 ,
Aug 28, 2015 Aug 28, 2015

Copy link to clipboard

Copied

What is your binary size

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 ,
Aug 28, 2015 Aug 28, 2015

Copy link to clipboard

Copied

77mb, that's way too much.

moreover, if you inspect what's in the first 15 mb of the file you will find mainly garbage.

is anyone having the same issue?

is adobe working on a better version of the compiler?

can anyone shed some light on this problem?

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 Expert ,
Aug 28, 2015 Aug 28, 2015

Copy link to clipboard

Copied

I have IPAs over 100 MB without a problem, though much of that is external videos files, which may make a difference.

You could significantly reduce the size of the IPA by having a flat color splash screen, or any other design that gets from PNG compression. A full set of photographs for all the different screen sizes could take 10-20 MB of space.

I don't think that comes out of the app budget though. For that, just use tougher JPEG compression and lower audio data rates. I'm finding that 64 kbps is good enough for hand held game play, no need to use 320 kbps, or even 128 kbps.

BTW, look at publishing settings and check the Generate Size Report box, and do a build. You'll then see in detail what things are taking up the space.

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 ,
Aug 28, 2015 Aug 28, 2015

Copy link to clipboard

Copied

thanks for the reply Colin,

anyway I'm talking about the executable binary size, not the full ipa.

We already stripped out ALL the embedded assets and now we're now trying to shrink the size further but we're impeeded by not having access to the compiler.

ideas?

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 Expert ,
Aug 28, 2015 Aug 28, 2015

Copy link to clipboard

Copied

How are you building the IPA if you don't have a compiler?

How are you including images in the app? I guess it's not out of the question that external assets in a folder are still counted as part of the executable. If there's a chance of that being the cases, compressing the images would reduce the executable size.

BTW, as a comparison, an AIR app that doesn't yet do anything is under 8 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 ,
Aug 28, 2015 Aug 28, 2015

Copy link to clipboard

Copied

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 ,
Aug 28, 2015 Aug 28, 2015

Copy link to clipboard

Copied

anton

77mb is the size of the unix executable inside the ipa.

the whole ipa size is >100mb

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 ,
Aug 28, 2015 Aug 28, 2015

Copy link to clipboard

Copied

pgatplumbee написал(а):

anton

77mb is the size of the unix executable inside the ipa.

the whole ipa size is >100mb

This is your main problem - you don't know what are you doing. You must EXCLUDE ALL assets (mp3, jpgs,png) from SWF and use File/Loader/URLLoader for loading it for Runtime. Use always external resources:

1) IPA it's ZIP and external resources can be better compressed as ZIP instead of Unix binaries

2) iOS Apps consist from two versions of binaries - 32 and 64 bits. So you app can easy get crazy sizes just because it use x64 and x32 arch. You can't don't use x64 because AppStore reject yours app

3) When you pack resources inside your SWF - this can crash iOS device because any binaries gets bigger after decomposition inside the memory.

There is no any AIR issues. If you use Embed tags - don't use it anymore. Or use if amount of content not bigger that few MBs.

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 ,
Aug 28, 2015 Aug 28, 2015

Copy link to clipboard

Copied

thank you anton for publicly highlighting my incompetence!

as I stated few posts ago we already stripped out all the embedded assets (in your words, we use file\url loaders instead).

any other idea?

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 ,
Aug 28, 2015 Aug 28, 2015

Copy link to clipboard

Copied

And how in this case you can get 77mb of Unix binaries?

Find me in the skype therabbitflash so I can help you faster

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
Explorer ,
Oct 15, 2016 Oct 15, 2016

Copy link to clipboard

Copied

LATEST

add me to the list of lost souls here...

seems like we have three sizes to worry about: ipa size, swf size, and executable size

mine are:

ipa: appx 150mb, swf: 51mb, executable: 22mb -- not using any embed keywords in my code, and this is an AS3 only app

meanwhile the app store says I have 100 mb, and that I've exceeded that amount

has anyone really gotten to the bottom of this?

thanks

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