Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AppStore: blocking the game for 3G- devices

My iPhone game makes heavy use of the OpenGL ES 2.0 API, and it uses only this version (it needs the shaders). Is it possible to make it only available for the iPhone 3GS+? Not allowing customers of previous versions to download it?

EDIT: I heard that the Infinity Blade runs only on iPhone4, how did they do that? Are there other games in the appstore that require OpenGL ES 2.0 and no other? If there is such a thing, how do I do that?

like image 255
user642252 Avatar asked Feb 04 '26 04:02

user642252


2 Answers

you can make your app on app store only visible to certain models with UIRequiredDeviceCapabilities. check out the article.

thanks.

like image 157
modus Avatar answered Feb 05 '26 22:02

modus


To expand upon mohacs' answer, if you only want to make the application available to certain classes of devices, you can set various keys within the UIRequiredDeviceCapabilities item in your Info.plist. The definitive listing of which capabilities filter for which devices can be found in Apple's iTunes Connect Developer Guide under the "Device Compatibility Matrix" section.

If you rely on OpenGL ES 2.0 support to be present for your application to run on a device, you'll want to have opengles-2 appear in your UIRequiredDeviceCapabilities. The iPhone 3G S was the first iOS device to support OpenGL ES 2.0, so this will filter out the original iPhone, iPhone 3G, and 1st and 2nd generation iPod touches. There are plenty of applications out there that require this, and with people like Marco Arment reporting that fewer than 3% of the iOS devices in the wild lack support for OpenGL ES 2.0, it's a safe filter to use.

You make mention of only supporting the iPhone 4 and up. That's a little trickier to filter out, because while you could use the gyroscope or front-facing-camera keys to target newer A4 or A5 processor devices, this will not include the original iPad, which had hardware slightly more powerful than the iPhone 4.

My recommendation is to target the iPhone 3G S and up, because the iPhone 4 isn't that much more powerful than the 3G S. Also, the iPhone 4's Retina display can mean that fill-rate-limited OpenGL ES applications could run a lot slower on in than the 3G S, due to the difference in the number of pixels you need to render.

like image 38
Brad Larson Avatar answered Feb 05 '26 20:02

Brad Larson



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!