阻止应用程序在iOS 3.2上运行而不在3.1上阻止它

时间:2011-09-23 16:01:23

标签: iphone ios xcode ipad itunesconnect

我想发布一款在旧款iPhone上运行的应用程序 - 即在3.1上运行 - 但阻止它在iPad的iOS 3.2上运行。

游戏在iOS 3.1.3及更高版本的iPhone以及iOS 4及更高版本的iPad上完美运行。但是,在使用iOS 3.2的iPad上会出现一些缩放问题。

是否可以阻止该应用在iTunes Store上与iOS 3.2兼容,并阻止从iOS 3.2上安装,但仍然可以在iOS 3.1.3上运行?


一些澄清:

  • 我们绝对不想阻止iPad用户。
  • 游戏完全适用于iOS 3.1.3的iPhone和iPod Touch。
  • 游戏完全适用于iOS 4的iPad。
  • 唯一有问题的组合是带有iOS 3.2的iPad。
  • 运行时解决方案不是我们想要的。

我怀疑这是因为Apple的视网膜显示器的缩放代码意外地进入了iOS 3.2。虽然我当然可以花费大量时间来解决问题,但我不喜欢它。 iOS 3.2拥有较小的用户群,iPad用户没有理由避免升级。与此同时,我们试图不切断因升级而无法升级或不想升级的iPhone 2G,iPhone 3G,iPod Touch 1G和iPod Touch 2G用户。

此外,告诉用户他们刚刚购买的应用程序无法在他们的设备上运行会导致糟糕的用户体验。通过App Store阻止特定版本的操作系统安装是理想的,也不会阻止所有较小的版本。

1 个答案:

答案 0 :(得分:-1)

从技术上讲,你可以做到这一点。 不建议这样做!
例如。在applicationDidFinishLaunching中你可以这样做:

if ( [[[UIDevice currentDevice] model] rangeOfString:@"iPad"] != NSNotFound && [[[UIDevice currentDevice] systemVersion] floatValue]==3.2) 
    exit(0);

Apple有足够的机会批准该应用。并不是因为他们对您的解决方案感到满意,而是因为他们不会在iPad 3.2上测试您的应用程序
除了iPad 3.2,您无法允许在3.1及更高版本上运行应用程序。 我看到阻止您的应用安装在3.2上的唯一合法方式 - 将3.2.1设置为应用的部署目标。如果您无法保证您的应用可以在所有设备上运行,请将部署目标提高