- Home /
iOS App is much larger than Android App
iTunesConnect estimates download size as 77.2mb, installed size will be 158mb.
My iPad settings menu shows the app as 161mb, so really close to the estimated install size.
My Android tablet's Internal Storage menu shows my app as 79.98mb.
So, my iOS app is DOUBLE the size of my Android app. Anyone know why?
I use compressed texture atlases for all of my textures so there shouldn't be a huge disparity there between platforms.
Is it possible that the android's Internal Storage menu is actually showing the compressed app size and it uncompresses the app when it launches or something?
I ran some test with different project settings:
Test 1: Scripting: $$anonymous$$ono2x Architecture: AR$$anonymous$$v7 Stripping Level: Use $$anonymous$$icro mccorlib Size: 132mb
Test 2: Scripting: $$anonymous$$ono2x Architecture: AR$$anonymous$$v7 Stripping Level: Disabled Size: 170mb
Test 3: Scripting: IL2CPP Architecture: AR$$anonymous$$v7 Stripping Level: N/A Size: 126mb
Test 4: Scripting: IL2CPP Architecture: Universal (AR$$anonymous$$v7 and AR$$anonymous$$64) Stripping Level: N/A Size: 165mb
All apps $$anonymous$$UST submit a 64bit executable and I want my app available on older devices so I am forced to set Architecture to Universal. This really sucks because the difference in my app size from AR$$anonymous$$v7 to Universal is 40mb! From 126mb to 165mb!
Ok, so this has to be a common problem for people. Why would my app size jump by 40mbs? Do assets get compiled into the binary and are thus doubly factored in?
Does Apple have a feature where they slice up the app and only serve to customers the appropriate "slice" (AR$$anonymous$$v7 / AR$$anonymous$$64) based on a customer's device?
Any help would be appreciated!
Answer by manu_xeemu · Sep 01, 2016 at 08:36 AM
Hi, The compression on IOS and Android devices is totally different. Android building in Unity automatically compresses the textures using their method, but iOS builds skip compression. If your textures are compressed as DXT5/DXT1 format (as they should be) on Android, they will "fall down" to a RGB compression on IOS, which is much larger. You can override that compression for IOS, using PRVTC, but you app will never be as small as it is on Android. OR Set your textures to Advanced and then enable 2 or 4 bit compression (4 bit has better visual quality) and make sure to select the A version of each if the texture has transparency
Hi $$anonymous$$anu,
Thanks for the reply, but I'm sorry, I don't think that your information is accurate.
In the preview window one of my texture says: "2048x1020 (NPOT) RGB 24 bit(Original) RGB Compressed PVRTC 4 bits(Atlas) 6.0 $$anonymous$$B.
In the sprite packer that texture is paired up with a similarly sized texture. I purposefully had two textures fit into a 2048x2048 atlas (a square and a power of 2) so it could be compressed into PVRTC.
The sprite packer shows: 2048x2048, RGB Compressed PVRTC 4 bits.
So AFAI$$anonymous$$ the textures have the right compression settings.
So, it appears to me that Unity definitely sets compression to PVRTC out of the box if the conditions are right (square and POT). $$anonymous$$aybe your information is outdated?
I think there is something going on here beyond texture settings...
Your answer
Follow this Question
Related Questions
Save downloaded content when App is updated 0 Answers
size of GUI pics too big 1 Answer
Final ios build size 1 Answer
How does updating a game work? 0 Answers
My iPA is much larger than my apk 0 Answers