The main part of the application is, without a doubt, an executable file. The executable file is usually not very large, because it is just compiled code that the machine runs. In small, trivial applications, this is usually only a few kilobytes (KB). In more complex applications, it can be up to several megabytes (MB). When compiling for multiple architectures, the size of your application will inevitably increase (see my question about the size of the application when compiling for 64-bit iOS devices ).
In general (not always) the main part of your application size consists of interface files, images, videos, sounds, resources, etc. In other words, no, the executable is not the whole application .
Open any application (in some kind of file viewing mode) and look at its contents, it has four folders:
- Package - with executable file and resources
- Document folder, which can also take up significant space
- Cache and Temp Directories
Many games are very large, Infinity Blade, for example, is around 1.2 GB for bootstrapping. But the size of the Infinity Blade is due to the large number of images / graphics, and not the executable.
I think Apple is trying to prevent malware and iOS / device restrictions. Honestly, I think it would be very difficult to get an executable file above 60 MB. As I said, the bulk of the size of the application is made up of resources.
You can also turn to the iTunes Connect Guide here .
IOS 8 update
The application file structure and sandbox system has changed in iOS 8 (slightly). Therefore, some information about the structure of the application package (above) may be incorrect for iOS 8.0+. However, iOS will still calculate the size of each of these elements and consider them the size of your application.
For example, in iOS 8, your application documents may not be stored in your application package, but they still take into account the total storage space used by your application.