Pergunta

I have a third party library (ZBar) which complains about the armv7 arch when I build the project (in Terminal, using xcodebuild), and I have to set the valid architecture in the build settings to armv6 (only).

The question: Will an app set to armv6 even run on post iPhone 3GS devices?

Foi útil?

Solução

Yes, ARMv6 code will run on an ARMv7 device, but not the other way around. You can test this by downloading an app that hasn't been updated in a long time onto a brand new iPhone 5, and it should run perfectly fine (while not being retina-optimized).

This is because the two instruction sets are backwards-compatible, but not forwards compatible. However, ARMv6 now is not that much of an issue, because of Xcode 4.5's limitation to be unable to compile ARMv6 code.

Note that the iPhone 3GS is actually the first of the iOS device list that uses ARMv7, which can be observed by the fact that it's the earliest device that can run iOS 6 (which requires ARMv7, the only exception being the first generation iPad), so as long as you are targeting iOS 4.3+, you don't need to support ARMv6 at all.

Seeing as the only 4 devices that are ARMv6 are the (iPhone 2G, iPhone 3G, iPod, iPod 2G). All of those devices should have been replaced by now, and it isn't our fault if they aren't.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top