如何让我的应用程序仅在iPhone 3G及更高版本上运行

时间:2010-12-09 19:26:08

标签: ios

是否有办法限制设备,即iPhone 3G及更高版本,而不是支持iPhone 2G及更低版本。我找不到一个不同的元素。我将它限制在iOS 3.1,但我很确定iPhone 2G和更低版本可以运行iOS 3.1。

5 个答案:

答案 0 :(得分:2)

有一个similar question about 3GS+。但3G +?这可能很难。我在UIRequiredDeviceCapabilities中没有看到任何指定3G无线电的内容。您可以尝试使用基于3G所具有的硬件功能的另一个密钥,但是您可能会被Apple拒绝构建。

使用运行时检查来检测硬件,因为Sam Ritchie也建议这也是一个坏主意,因为(1)肯定会引发拒绝,如果不是(2)使用旧设备的人将能够购买应用程序,只是发现它不会运行,他们会抱怨,这将导致Apple无论如何从销售中取出你的应用程序。

答案 1 :(得分:0)

执行此操作的一个好方法是在github上查看UIDevice-Extension项目。它使您能够检测正在运行的硬件。

我怀疑解决此问题的方法是检查您的应用并找出您不希望早期手机的用户能够访问的内容。一旦缩小了该功能,您就可以轻松检查设备上是否存在该特定功能。为此,请在Info.plist中包含UIDeviceRequiredCapabilities键,并查看Apple的Build Time Configuration指南,以获取所有可能值的列表。您可以在“声明所需的设备功能”标题下找到它。祝你好运!

答案 2 :(得分:0)

在不诉诸苹果不允许的事情的情况下实现这一目标的唯一方法是针对iOS 4.0或更高版本。 4.0不会在第1代运行。我意识到你想要定位iOS 3.1,但你要么允许所有设备,要么定位4.0。

答案 3 :(得分:0)

为您的应用添加一些基于位置的最小功能(以便Apple无法拒绝),然后将“gps”键添加到您应用的UIRequiredDeviceCapabilities中。

但请注意,实际上仍然购买应用程序的2G用户的百分比目前似乎是微观的,不值得打扰。请在说明中说明缺少对这些设备的支持。

答案 4 :(得分:0)

这个答案似乎回答了你的问题:

https://stackoverflow.com/a/4128248/285694

解决方案是要求" armv7"在所需的设备功能xml。