Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Support both armv6 and iOS 6 in an App Store app?

Since Xcode 4.5, we are unable to build for armv6 and thus unable to support devices like iPhone 3G anymore.

Would it be possible to use, say, Xcode 4.3 to generate a properly signed armv6 binary and then use lipo to combine that binary and the Xcode-4.5-generated armv7 binary into a fat one?

How would I go about this? Does anyone know a good tutorial?

Would the resulting fat binary be allowed for submission to the App Store?

like image 815
tajmahal Avatar asked Sep 25 '12 00:09

tajmahal


1 Answers

The code signature would no longer match after modifying a binary using lipo. So the bundle would need to be re-codesigned afterwards.

Apps built with Xcode 4.4 and even earlier will still run just fine on iOS 6 devices; and there are reports that Apple is still accepting apps built with the iOS 5.1 SDK.

Objective C will allow you to use some of the newer APIs not in the older linked frameworks via calling them thru the Objective C runtime by name. (Of course, the app should check for their availability on the current device first!)

You can even support the new iPhone 5 display from an earlier Xcode and pre-iOS-6 SDK by simply including a 568@2x tall Default image in the app bundle, and setting all your app's window and view sizes and resizing properties properly. UPDATE: Apple is no longer accepting apps built this way when submitted to the iTunes App store.

ADDED: Another potential solution is to split your development into two similar apps. One for iOS 4.3 and up. And one for iOS 4.2.x and lower with not iOS 6 and iPhone 5 support. Two different apps in the app store. However it is unknown whether Apple will allow this.

like image 101
hotpaw2 Avatar answered Nov 06 '22 10:11

hotpaw2