按型号定位iPhone应用程序(例如3G vs 3GS)

7

与info.plist文件上所需的设备能力类似,是否有可能配置应用程序,以便它仅在某些设备型号上可用?

我知道如何通过设备系列(iPhone&iPod vs iPad)来定位它,但在这种情况下,我想按型号进行定位。我也知道如何以编程方式确定模型,但我想要的是iTunes防止某些设备型号无法下载应用程序,这就是为什么通过info.plist来实现似乎是最好的方法。

例如,如果我希望一个应用程序在iPhone 3GS(或iPhone/iPod 4)及以上版本上可用,但不在iPhone 3G上可用,有没有任何方法可以做到这一点?


今天每半小时都会有人问这个问题。 - Alex Brown
哦?没在哪里看到...... - André Morujão
3个回答

2

1
进一步提示:3GS有磁力计,而3G没有。 - Dan Ray
谢谢Dan,我之前看过这个列表,但没有注意到那一个。 - André Morujão
此外,iPhone 3GS支持OpenGL ES 2,而3G不支持 ;) - Goz

2

将armv7添加到应用的info.plist文件中的UIRequiredDeviceCapabilities中。这将防止该应用在使用armv6处理器架构的iPhone 3G上加载。


我发现这也会停止第二代iPod Touch的使用。所以如果你只想排除iPhone 3G(像我一样),那就不行了。 - Jonny

1

除了在代码中进行操作外,没有其他方法。苹果不鼓励这样做,而是要求您要求特定的功能,而不是特定的型号。

您能做的最好的事情就是在产品描述中注明某些功能在3G硬件上不可用/性能较差,然后在代码中禁用这些功能或让它们运行得很差。


很遗憾。对于我的需求来说,在代码中检查是不好的(我不想让iPhone 3G用户购买应用程序后发现它会在启动时崩溃)。幸运的是,我们成功修复了导致崩溃的问题,所以这将不再需要。 - André Morujão

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接