How to reduce code size of iPhone app?

2019-03-15 17:27发布

问题:

My iPhone app is getting ready to go to production and we like to cram in as much data as possible. When I poke around the generated .app file for my application I see a file named <executable name> which I assume is the compiled code. It is about 2.5 megs which seem large for what I am including in my app. What type of things should I check to make sure there aren't any unneeded items being included into my executable?

回答1:

There are a number of things you could do -- 2.5 MB is a small app.

  • One obvious way is to verify that your binary is in fact stripped. This removes unused references (e.g. functions which are not actually called) and debugging info.

  • Link Time Optimization (LTO) can save you a ton of space, although that applies to the C and C++ aspects of your program. It brought one of my programs down to about 1/5 the size.

  • Play with optimization settings. O3 and O2 often produce a smaller binary than Os.

  • Keep track of your dependent libraries. Their exported symbols may be relatively large.

  • Favor C or C++ for shared libraries in larger projects. If unused, they may be stripped or optimized away.

  • Minimize static data and static functions, restricting their scope to the c, cpp, m, mm file.



回答2:

I probably wouldn't be overly concerned about the app being 2.5MB, but if you want to do due diligence in making sure you're only including what is really needed, I'd take a look at all of the resource files (images, views, movies, etc) that your project references and make sure that all of them are being used by the application.