It's too open a question to provide with any detailed answer but, if you're working on a "normal" game, the majority of your data will most likely be textures or other game related assets.
If you're supplying different sized assets for the various iOS devices, this would perhaps mean that your assets are duplicated and, therefore, all contributing to build size. You could look at re-using or sharing the assets across different iOS resolutions.
Alternatively, if you're using PNGs you may get some mileage by switching to JPGs although I don't normally recommend it. The loss in quality and extra decoding time at run-time may not be worth it although you'd have to perform your own tests.
Other game-related data like 3D model data, animations, etc, can usually be reduced in size to some degree - you need to look at your own situation and figure out what you can do.
As a more general means of data size reduction, you can look at using a zip or pak file approach. Rather than storing all of your assets in a flat folder directory scheme, you could build them into a zip file that is, by implication, compressed. At run-time, you would have to decompress the data dynamically on-demand. This can be very quick indeed (depending on your chosen form of compression) and doesn't necessarily require too much extra memory.