- Home /
iOS app is much larger than Android app
Hello,
We are developing a cross platform (Android/iOS) application on Unity 4.6.4 which is installed on a Windows 7 workstation. The Android SDK is on the Windows workstation so we launche the apk package build process directly from Unity. The apk size is about 40 Megs. In order to compile the iOS app we build the Xcode project in Unity on the Windows workstation than the project get transferred on a Mac and is then compiled in Xcode 6. The iOS app size is about 700 Megs wich is really too big compared with the Android app. The iOS Unity project player settings are left at the default values but the following: 1. Other Settings > Scripting Backend: IL2CPP 2. Architecture: Universal 3. Graphics API: Open GL ES 2.0
Have you any idea why we are facing this issue? Thank you in advance,
salvatore
Just to gather some more information: - When you use $$anonymous$$ono as scripting backend, rather then IL2CPP you still have a iOS app with 40$$anonymous$$B comparable to the Android Build? - Is 700$$anonymous$$B a spelling mistake and you mean 70$$anonymous$$B? Or is it really 700$$anonymous$$B - Do you talk about the .ipa size?
A little guide on IL2CPP build size reduction can be found here: http://forum.unity3d.com/threads/il2cpp-build-size-improvements.322079/
Hi $$anonymous$$, it wasn't a mistake, it really was 700 $$anonymous$$B on device (not the IPA size, which should be smaller due to compression). What surprised me was the difference compared with the Android app which was something like 60$$anonymous$$B on device... I had to use IL2CPP in order to support 64 bit devices. We managed to drastically reduce the app size by changing our approach, we moved from a low poly/big maps model to a high poly/small maps one. Actually the app size went down to a 68$$anonymous$$B IPA and 180$$anonymous$$B on device (but the GPU is now pushing its limits on some devices). The Android ipa is now 30$$anonymous$$B and 56$$anonymous$$B on device. Thank you for the IL2CPP build size reduction thread, I hope it will help!
Answer by trololo · Apr 02, 2015 at 11:10 AM
Well, actually the compression on IOS and Android devices is totally different. 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 comrpession for IOS, using PRVTC, but you app will never be as small as it is on Android (and you'll have some ugly assets). But this is not explaining such a huge difference... I think you can set some settings in XCode (Code Generation / Optimisation Level) to fastest and it may help to reduce your app size.
Thank you trololo, I think you are right. We had to turn off normal maps compression because we noticed too much artifacts and we are using many of them. Scaling down maps from 4096 to 1024 helped a lot containing app size. $$anonymous$$ay be the Android build optimization process is applying some sort of compression overriding our settings. This is our first job with Unity as well as our first iOS app so we are pretty unexperienced. I can't figure out how to enable PRVTC compression, the only options I see are Truecolor, Compressed and 16 bits.
Change your texture setting as "Advanced" then select and check override for platform that you want to set a especially format for that, select "Format" menu then you will see more optional.
Your answer
Follow this Question
Related Questions
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
iPhone profiler evaluation 1 Answer
Serialization of Dictionary> in Unity 4,6 0 Answers
Using AssetBundles as IAP Crashing 0 Answers