AppStore:阻止 3G 设备上的游戏
我的 iPhone 游戏大量使用 OpenGL ES 2.0 API,并且仅使用此版本(它需要着色器)。是否可以使其仅适用于 iPhone 3GS+?不允许以前版本的客户下载?
编辑:我听说《无尽之剑》只能在 iPhone4 上运行,他们是怎么做到的?应用商店中是否有其他游戏需要 OpenGL ES 2.0 而无需其他?如果有这样的事情,我该怎么办?
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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使您的应用程序在应用程序商店中仅对具有 UIRequiredDeviceCapability 的某些型号可见。
查看文章。
谢谢。
you can make your app on app store only visible to certain models with UIRequiredDeviceCapabilities.
check out the article.
thanks.
为了扩展 mohacs 的答案,如果您只想使应用程序可用于某些类别的设备,您可以在 Info.plist 的
UIRequiredDeviceCapability
项中设置各种键。有关针对哪些设备筛选功能的最终列表,请参阅 Apple 的 iTunes Connect 开发人员指南在“设备兼容性表”部分下。如果您依赖 OpenGL ES 2.0 支持来让您的应用程序在设备上运行,您将希望
opengles-2
出现在您的UIRequiredDeviceCapability
中。 iPhone 3G S 是第一款支持 OpenGL ES 2.0 的 iOS 设备,因此这将过滤掉原始 iPhone、iPhone 3G 以及第一代和第二代 iPod touch。有很多应用程序需要这样做,并且像 Marco Arment 这样的人 报告称,只有不到 3% 的 iOS 设备缺乏对 OpenGL ES 2.0 的支持,这是一个可以安全使用的过滤器。您提到仅支持 iPhone 4 及更高版本。过滤掉这个问题有点棘手,因为虽然您可以使用陀螺仪或前置摄像头键来定位较新的 A4 或 A5 处理器设备,但这不包括最初的 iPad,其硬件比 iPhone 4 稍强。
我的建议是针对 iPhone 3G S 及更高版本,因为 iPhone 4 并不比 3G S 强大多少。此外,iPhone 4 的 Retina 显示屏可以这意味着,由于需要渲染的像素数量不同,填充率受限的 OpenGL ES 应用程序的运行速度可能比 3G S 慢很多。
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 yourUIRequiredDeviceCapabilities
. 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
orfront-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.
我不确定是否可行,但您可以添加对 iOS 版本的检查。如果是 5.0 或更高版本,则让应用程序运行,否则提供反馈,说明此应用程序需要 iOS 5.0 或更高版本。 AFAIK iOS 5.0 只能安装在 iPhone 3GS+
希望有帮助
I'm not sure that it is possible, but you can add a check on iOS version. If it's 5.0 or higher let the app run, otherwise give a feedback saying that this app requires iOS 5.0 or higher. AFAIK iOS 5.0 can only be installed on iPhone 3GS+
Hope it helps