5

when deploying my IOS app to my mac the IPA file size is 87.3mb - After I publish the app to the iStore, Apple sends me a warning telling me that after they do some stuff it will be larger than 100mb and will only allow users to download it over wi-fi. It's quite imperative for me that my app stays below 100mb so that users can download it via mobile connection

Now - I've done some things that in my mind that should have decreased the app size but to no real avail

  • Compressed all the images I use in the app (combined size of all the images is less than 3MB - including splash screens and launcher icons)
  • Removed all unnecessary references to units (cleaned up the "using" sections)
  • Removed all design time components that can be instantiated in code
    • I'm not using livebindings
    • I am using Firedac with SQLite (the database is less than 1MB)

The APK file size is 43 mb which is well below the 50mb max google wants it

Any help or advice in getting the Apple IOS IPA file smaller would be great

edit
Upon further inspection as suggested by @Robotic Cat in the comments I find that the Unix Executable is the culprit... this is then definitely something to do with how delphi builds and links the package
end edit
enter image description here

Ryno Coetzee
  • 516
  • 4
  • 13
  • 1
    If you downvote please tell me why so that I can amend the question - also I do believe this is a legitimate question – Ryno Coetzee Apr 22 '16 at 08:35
  • 1
    Download the app from Apple (in iTunes), change the extension to `zip` and unzip it. Then you can see the size of each component in your app and return to SO with a clearer question. Example instructions: http://iphone.appstorm.net/how-to/utilities-how-to/how-to-break-into-your-iphone-apps/ . As this question stands, you are asking us to guess what is too large in your app. – Robotic Cat Apr 22 '16 at 10:21
  • 1
    Possible duplicate of [What Can I Do To Reduce My Executable's Size (Delphi)?](http://stackoverflow.com/questions/3199476/what-can-i-do-to-reduce-my-executables-size-delphi) – Johan Apr 22 '16 at 14:34
  • Short answer: remove debug info, remove rtti in all your units, have a good hard look at the resources in your units (plain bitmaps in forms get stored as uncompressed text). – Johan Apr 22 '16 at 14:56
  • Hi Johan. thanks for the comment. By default 10 seattle (when choosing release build configuration) has debug info switched off and emit runtime type info switched on. I also store all the images (compressed) I frequently use in a TImageList as to minimize overhead on the form (.fmx) – Ryno Coetzee Apr 23 '16 at 10:02
  • @RynoCoetzee Did you ever make progress on this? – BIBD Dec 13 '16 at 21:22
  • Not really no. However; We recently re-structured the app because we started using TFrameStand, in the past our entire App lived on a TTabSheet. We also removed a native libraries we used to check for internet connection (http://delphi.radsoft.com.au/2013/11/checking-for-an-internet-connection-on-mobile-devices-with-delphi-xe5/). This - without being our goal actually significantly decreased our App size – Ryno Coetzee Dec 14 '16 at 07:34

0 Answers0