From The Apple Wiki

ARMv7 is the processor instruction set used starting with the S5L8920 in the iPhone 3GS, S5L8922, S5L8930, S5L8940, S5L8942, S5L8945, S5L8950, and S7002 devices. Processors that support ARMv7 instructions maintain backwards compatibility with ARMv6 instructions.


The instructions are more efficient and numerous than the older ARMv6 instructions, resulting in a smaller binary and faster execution time. The official SDK allows developers to choose to compile for only ARMv6 or a universal ARMv6/ARMv7 binary.

Implementation drawback

iOS 4.1 and older require binaries to contain ARMv6 instructions, regardless if the program is intended only for an ARMv7-capable device. iOS 4.2 drops this requirement, as ARMv6 support was dropped in the following version of iOS.


Despite the fact that iOS supports universal binaries, iOS system binaries are not universal; they will only work with their intended architecture. This helps keep file sizes down, and prevents older processors from using newer features without the possibility of enabling such functionality.