2

It's important that my game runs at 60 frames per second. It does on iPhone 4S and 5, but 4 is a world away from 60.

So - without going into whether it's a good idea to or not - how do I prevent iPhone 4 users from buying the game?

tshepang
  • 12,111
  • 21
  • 91
  • 136
Jamie Lowes
  • 131
  • 1
  • 6
  • 1
    well, it has been asked on stackoverflow quite a few times: "uidevice-extension" and/or http://stackoverflow.com/questions/8292246/how-to-programmatically-differentiate-between-iphone-4-and-iphone-4s might help... anyway I would rather aim for not requiring 60 fps and lockout quite a few endusers (willing to pay?) – Najzero Jan 18 '13 at 09:50
  • 2
    That wouldn't prevent a user from downloading the application, which is what this question is trying to achieve. You shouldn't let a user download an app if the device isn't supported, otherwise you'll just anger your users. – WDUK Jan 18 '13 at 09:56

1 Answers1

1

Using UIRequiredDeviceCapabilities, you can lock out certain devices that do not support a capability you require. This really is the only way to prevent an app running an a subset of older generation devices.

To use this, you need to list your capabilities within Info.plist. You use the UIRequiredDeviceCapabilities key, and use an array of capability keys. See the documentation on iOS Keys.

For example, to support the iPhone 4S, iPod Touch 5th Gen, and iPad 3rd Gen, you can state that you require the bluetooth-le capability, which is Bluetooth Low Energy. A compatability matrix that links capabilities with devices can be found here.

Note: This does not mean I suggest you should do this; just that you can. It's a very hacky way to do it, and I can't guarantee that Apple won't crack down on it. Ideally you should be able to fallback to lesser (yet acceptable) performance, so that a wider audience can use your application.

WDUK
  • 18,870
  • 3
  • 64
  • 72
  • I want to support iPad 2/3/4/Mini, iPhone 4S/5 and equivalent iPod touches, (which I think is just the 5th gen). Looks like bluetooth-le would kill iPad2. Bummer. – Jamie Lowes Jan 18 '13 at 10:15
  • It runs around 30 frames on a 4.. Which kinda isn't what my company is about. But looks like it'll have to stay supported. Front facing camera it is then! Thank you all. – Jamie Lowes Jan 18 '13 at 10:19
  • Well, put out a new build to test, and asked if it was acceptable. It's running at about 30, whereas the last build was about 20-25. People have said the previous build was already acceptable... Nothing to worry about it would seem! :D – Jamie Lowes Jan 18 '13 at 16:00
  • From personal experience, this is a guaranteed way to have Apple reject your app from being approved for the app store. – Ilias Karim Apr 06 '13 at 00:47