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

发布于 2024-12-06 10:51:30 字数 760 浏览 2 评论 0原文

我想发布一个在旧 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 安装特定版本的操作系统将是理想的选择,同时又不阻止所有较低版本。

I'd like to release an app that runs on old iPhones - that is, that runs on 3.1 - but blocking it from running on iPad's iOS 3.2.

Game runs perfectly on iPhones with iOS 3.1.3 and newer, and on iPads with iOS 4 and newer. However, some scaling issues occur on iPads with iOS 3.2.

Is it possible to block the app from appearing as compatible with iOS 3.2 on iTunes Store and to block if from installation on iOS 3.2, but still make it run on iOS 3.1.3?


Some clarifications:

  • We definitely don't want to block iPad users.
  • Game fully works on iPhones and iPod Touches with iOS 3.1.3.
  • Game fully works on iPads with iOS 4.
  • The only combo with issues is iPad with iOS 3.2.
  • Runtime solutions are not what we're looking for.

I suspect this is due to Apple's scaling code intended for retina displays accidentally making it into iOS 3.2. While I could certainly spend loads of time pinning down the issues, I don't feel like it. iOS 3.2 has a small user base, and iPad users have no reason to avoid upgrading. At the same time, we're trying not to cut off iPhone 2G, iPhone 3G, iPod Touch 1G and iPod Touch 2G users who cannot upgrade or don't want to upgrade due to slowdowns.

Also, telling users that they just bought an app that won't work on their device would result in bad user experience. Blocking off a specific version of OS from installation via the App Store would be ideal, without blocking all lesser versions, too.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

池予 2024-12-13 10:51:30

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

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

Apple 批准该应用程序的机会足够高。不是因为他们会对您的解决方案感到满意,而是因为他们不会在装有 iOS 3.2 的 iPad 上测试您的应用程序。

除了 iPad 3.2 之外,您无法允许在 3.1 及更高版本上运行应用程序。 我认为阻止您的应用安装在 3.2 上的唯一合法方法 - 将 3.2.1 设置为应用的部署目标。如果您不能保证您的应用能够在所有设备上运行,请将部署目标移至更高的位置。

Technically you can do that. It's not recommendation to do such!
E.g. in applicationDidFinishLaunching you could do:

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

There high enough chances Apple will approve that app. Not because they will be happy with your solution but because they will not test your app on iPad with iOS 3.2.

You have no way to allow running app on 3.1 and higher except iPad 3.2. The only legal way I see to prevent your app from being installed on 3.2 - set 3.2.1 as deployment target of your app. If you cannot guarantee your app will work on all devices, move deployment target higher.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文