我的iPhone游戏大量使用OpenGL ES 2.0 API,它只使用此版本(它需要着色器)。是否可以使它仅适用于iPhone 3GS +?不允许以前版本的客户下载它?
编辑:我听说Infinity Blade仅在iPhone4上运行,他们是如何做到的? appstore中是否还有其他游戏需要OpenGL ES 2.0而没有其他游戏?如果有这样的事情,我该怎么做?答案 0 :(得分:6)
您只能在具有UIRequiredDeviceCapabilities的某些型号上看到应用商店上的应用。 查看article。
感谢。
答案 1 :(得分:4)
要扩展mohacs的答案,如果您只想让应用程序可用于某些类别的设备,您可以在Info.plist中的UIRequiredDeviceCapabilities
项目中设置各种键。最新列出哪些功能可以在Apple的iTunes Connect Developer Guide“设备兼容性矩阵”部分下找到哪些设备。
如果您依赖OpenGL ES 2.0支持来使您的应用程序在设备上运行,那么您需要在opengles-2
中显示UIRequiredDeviceCapabilities
。 iPhone 3G S是第一款支持OpenGL ES 2.0的iOS设备,因此它将过滤掉原有的iPhone,iPhone 3G以及第一代和第二代iPod touch。有很多应用程序需要这个,而像Marco Arment reporting that fewer than 3% of the iOS devices in the wild lack support for OpenGL ES 2.0这样的人,它是一个安全的过滤器。
你提到只支持iPhone 4及以上版本。过滤掉有点棘手,因为虽然您可以使用gyroscope
或front-facing-camera
键来定位较新的A4或A5处理器设备,但这不包括原始iPad,其硬件略强于iPhone 4.
我的建议是针对iPhone 3G S及以上,因为iPhone 4的功能并不比3G S强大。另外,iPhone 4的Retina显示屏可能意味着限制填充率的OpenGL ES应用程序可以由于你需要渲染的像素数量不同,因此比3G S运行速度慢很多。
答案 2 :(得分:0)
我不确定是否可行,但您可以添加对iOS版本的检查。如果它是5.0或更高版本,请让应用运行,否则请提供反馈,说明此应用需要iOS 5.0或更高版本。 AFAIK iOS 5.0只能安装在iPhone 3GS +上
希望有所帮助