【问题标题】:iPhone Target Certain DevicesiPhone 针对某些设备
【发布时间】:2012-04-23 23:29:08
【问题描述】:

我想定位 iPhone 4、iPhone 4S、iPod Touch(第 4 代)。我不想针对 iPhone 3G 和 iPhone 3GS。我看过一些帖子说这是不可能的。但是,我在 App Store 中注意到有些应用会这样做,如下图所示。

我将如何做到这一点?

【问题讨论】:

标签: iphone objective-c ios


【解决方案1】:

之所以出现这些要求,是因为开发人员已将 armv7 作为 UIRequiredDeviceCapabilities Info.plist 键中的条目。没有专门针对 iPhone 4 及更高版本的键,尽管您可以使用其他键之一来消除 3GS。

您为什么要阻止人们在旧设备上安装您的应用?

【讨论】:

  • 是的,我的滚动视图和选择器在 iPhone 3G/3GS 上无法正常工作,我立即使用 armv7 但 iPhone 3GS 是 armv7
  • 这是一款已经在 App Store 上架的应用吗? Apple 不允许您对现有应用程序添加限制。为什么你提到的东西在这些模型上不起作用?当然最好还是直接解决这个问题?
  • 它目前在 App Store 中,但我即将更新该应用程序。在 3G/GS 上实际测试我的应用程序后,我碰巧遇到了这个错误。操作系统版本无关紧要,似乎是那些设备。
  • UIScrollView 和 UIPicker 无法正常工作,解决此问题的唯一方法是禁用选取器内的滚动。由于选取器占据了大部分滚动视图,因此滚动非常困难。我遇到的最奇怪的错误
  • 我只是要不匹配键直到我得到想要的结果,谢谢
【解决方案2】:

我相信您想设置UIRequiredDeviceCapabilities 来准确指定您的应用需要哪些功能。例如,camera-flash 键仅适用于 iPhone4 及更高版本,如果您需要的话。

上面还有一个Q&A article

【讨论】:

    【解决方案3】:

    除了使用 UIRequiredDeviceCapabilities 设置设备所需的功能外,您还可以指定需要安装的最低 iOS 版本。

    看到这个Apple Technical Note, TN2250

    【讨论】:

    • 是的,但是由于 3GS 可以更新 5.1,这并不能解决问题
    • 我可以用 armv7 安全地消除 3G,但 3GS 是问题
    • 对,设置iOS版本只是其中的一部分。您正在测试的 3GS 设备上的 iOS 版本是什么?
    • 由于 iPhone 3GS 可以更新 iOS 5.1,因此该标志无关紧要
    • 我要解决的问题可能是您在使用 UIScrollView 和 UIPicker 时遇到的问题与您正在测试的 iOS 版本有关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 2023-04-04
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    相关资源
    最近更新 更多