HUUUUGE iOS binary size compared to Android

I’m trying to publish my first Unity mobile game.

The grand total size of my .png atlases for this project is 10Mb.

Android apk is 25MB with all textures being NOT compressed ( RGBA 32 bits )
The estimated size of the iOS build is :

  • 120MB (!) using RGBA compressed PVRTC 4 bits textures
  • 300MB (!!!) using non compressed RGBA 32 bits image
  • 30 MB if I remove all 10MB pngs from my resource folder (to check the problem was clearly on textures)

So 10MB of images COMPRESSED with PVRTC gives 120-30=90M of data?!?

What’s going on? Is this really “normal” as I read on unity forums and answers? For me, there’s really something not very clear here, that needs some explanations.

When Unity makes a build, it writes data to the log file saying the sizes of each asset. What does that log say?

I agree 120MB sounds big. There’ll be a straightforward explanation.

Actually I just converted all my .png into _png.bytes (I’m using a 2D framework that supports this kind of image files) and the binary size is now 50MB.
I’ll post the log when I get some time to come test this, even if the problem is sovled for me, I’m interesting in knowing what I did wrong.

Well, GPUs typically don’t support PNG format textures, so Unity converts them into whatever format is best for that platform. Once we see the log file, we can work out what it’s doing.