Iphone AppStore:阻止3G设备的游戏

Iphone AppStore:阻止3G设备的游戏,iphone,ios,opengl-es,app-store,opengl-es-2.0,Iphone,Ios,Opengl Es,App Store,Opengl Es 2.0,我的iPhone游戏大量使用OpenGL ES 2.0 API,并且只使用这个版本(它需要着色器)。是否可以只在iPhone 3GS+上提供?不允许以前版本的客户下载 编辑:我听说Infinity Blade只在iPhone4上运行,他们是怎么做到的?appstore中是否有其他游戏需要OpenGL ES 2.0而无其他要求?如果有这样的事情,我该怎么做呢?我不确定这是否可行,但您可以在iOS版本上添加一个检查。如果是5.0或更高版本,让应用程序运行,否则给出反馈,说明此应用程序需要iOS 5.

我的iPhone游戏大量使用OpenGL ES 2.0 API,并且只使用这个版本(它需要着色器)。是否可以只在iPhone 3GS+上提供?不允许以前版本的客户下载


编辑:我听说Infinity Blade只在iPhone4上运行,他们是怎么做到的?appstore中是否有其他游戏需要OpenGL ES 2.0而无其他要求?如果有这样的事情,我该怎么做呢?

我不确定这是否可行,但您可以在iOS版本上添加一个检查。如果是5.0或更高版本,让应用程序运行,否则给出反馈,说明此应用程序需要iOS 5.0或更高版本。AFAIK iOS 5.0只能安装在iPhone 3GS上+


希望它有帮助

您可以使应用商店上的应用仅对某些具有UIRequiredDeviceCapability的型号可见。 看看这本书


谢谢。

要扩展mohacs的回答,如果您只想让应用程序可用于某些类别的设备,您可以在Info.plist中的
UIRequiredDeviceCapabilities
项中设置各种键。苹果公司在“设备兼容性矩阵”一节中列出了过滤哪些设备的最终功能列表

如果您依赖OpenGL ES 2.0支持在设备上运行您的应用程序,您将希望
opengles-2
出现在
UIRequiredDeviceCapabilities
中。iPhone 3G S是第一款支持OpenGL ES 2.0的iOS设备,因此这将过滤掉原始iPhone、iPhone 3G以及第一代和第二代iPod Touchs。有很多应用程序需要这样做,对于像Marco Arment这样的人来说,这是一个安全的过滤器

你提到只支持iPhone4及以上。过滤起来有点棘手,因为虽然你可以使用
陀螺仪
前置摄像头
键瞄准较新的A4或A5处理器设备,但这并不包括原始iPad,它的硬件功能比iPhone4稍强


我的建议是针对iPhone 3G S和更高版本,因为iPhone 4没有3G S强大多少。此外,iPhone 4的视网膜显示可能意味着填充率受限的OpenGL ES应用程序在3G S上的运行速度可能会慢很多,由于需要渲染的像素数不同。

这是一个很好的解决方法。但还有别的办法吗?我听说Infinity Blade只在iPhone4上运行,我想知道他们是怎么做到的……只是检查了两个Infinity Blade。它说它在iPhone3GS+上运行,但我不确定它是否在搜索3G或更早版本时显示。我认为@mohacs的答案是你一直在寻找的for@Piku我没有说iPhone3GS只能使用iOS5.0。我说过iOS 5.0只能安装在iPhone3GS或更高版本上