Considering removing ARMV6 support

Thanks to a confluence of events, Pawns is in jeopardy after being on the App Store for a year.

* Apple is starting to disallow app use of the device GUID.
* Older OpenFeint SDKs relied on GUID. They've just introduced one that does not. However..
* OpenFeint's Unity support is lagging. They acknowledge that their current beta Unity plugin does not work on ARMV6 or iPads; the ARMV6 crash has been going on for months.
* Both my ARMV6 test devices recently stopped working.

It seems to me that I could make this situation more manageable by dropping ARMV6 support. However, I have an early recollection of an app I used being upgraded beyond the capabilities of my device at the time. I believe iTunes upgraded the local copy, and from then on whenever I tried to sync I got a warning that that app wasn't compatible with the device..

I do not recall whether the older version was left on the device or not.

Does anyone know exactly what the user experience will be if I drop ARMV6 (or introduce some other new requirement, such as requiring a later version of iOS?) That will help me decide what to do here.

(Apr 7, 2012 04:53 PM)MattDiamond Wrote: Does anyone know exactly what the user experience will be if I drop ARMV6 (or introduce some other new requirement, such as requiring a later version of iOS?) That will help me decide what to do here.

On my iPhone 3G, the behavior is exactly the one you describe:

(Apr 7, 2012 04:53 PM)MattDiamond Wrote: I have an early recollection of an app I used being upgraded beyond the capabilities of my device at the time. I believe iTunes upgraded the local copy, and from then on whenever I tried to sync I got a warning that that app wasn't compatible with the device..

I do not recall whether the older version was left on the device or not.

The old version stays on the phone, although if you ever restore the phone and don't have a backup of the old version of the app, you won't be able to install it anymore.

You are not allowed to drop support for hardware, only OS versions. So while you can say your app needs to support iOS 4.3 (which ARM6 devices don't support), you still need to provide an ARM6 executable in order for your app to pass the automated verification tests.

It's really stupid. I'll see if I can find the knowledge base article about it. The honest solution to it was to make a whole new app when making hardware requirement changes.

Really stupid right? You can exclude a device by requiring a version of the OS that they can't actually run, but you can't exclude them because you want to also start excluding hardware that isn't even supported in the OS version your require.

As it happens, if I decide to drop ARMv6, it becomes almost a no-brainer to drop iOS3 as well. (Both OpenFeint and TestFlight support iOS3, but you have to jump through more hoops and I expect more and more problems in future.) And even a year ago the % of iOS 3 users was quite small, according to a couple of articles I've seen.

More worrisome is the possibility that the automated verification tests might notice that the ARMv6 build crashes on startup, assuming OpenFeint doesn't get their act together. I guess we'll see. Either way, very annoying that my binary needs to include ARMv6. Was looking forward to faster build times and a slimmer binary.

Scott, you raise the possibility about creating a new game for forward development, and leaving the old one alone. As I understand it, the OpenFeint features I use (achievements, in this case, but possibly OF's GameCenter integration as well) will eventually stop working when Apple pulls the plug on UDID for good. That would presumably be in a future iOS release; the device ID is "merely" deprecated in iOS 5.0. As long as I didn't resubmit the app for any reason, the old version would still be available on the store to keep people with old devices happy for some time to come.

The main issue there is market confusion between the versions, I guess. I'm not fond of that approach unless I add a great deal more content and call it Pawns 2, and I just don't have much to add right now. Just wanted to future-proof it a little and add a little eye candy before moving on to the next game.

Another decision: pretty sure I am going to drop OpenFeint and integrate GameCenter directly. Since my achievements can be recalculated from the saved PlayerPrefs I don't think it would be that hard to migrate the player's existing achievements over to GameCenter.

GameCenter of course requires iOS4. So I still have the basic decision of whether or not to support
older devices (i.e. track achievements locally on those devices if GC isn't available). But at least I won't be reliant on OF getting their side working.