【问题标题】:Does "Deployment Target" do more than control compiler warnings?“部署目标”不仅仅控制编译器警告吗?
【发布时间】:2010-11-09 18:24:12
【问题描述】:

我最近提交了一个使用 3.2 部署目标的应用程序更新(在我的调试设置中是 3.0,但我一定忽略了分发设置)。但在 iTunes Connect 中的应用程序设置中,我指出支持的最低操作系统版本为 3.0。现在,我收到来自 OS 3.1 用户的报告,称该应用程序无法运行。

我已经使用固定的部署目标构建了新的二进制文件,但我无法对其进行测试。我没有任何运行 OS

那么部署目标设置是否不仅仅控制编译器警告(例如,如果我使用了仅在较新的 SDK 中可用的 API)?据我所知,我不使用 OS 3.0 中不可用的任何 API(也没有警告)。

【问题讨论】:

  • 您是如何在 iTunes Connect 中设置支持的最低操作系统版本的?这应该从您提交的二进制文件中的 Info.plist 中自动提取,并且不应该是您可以设置的内容。
  • @Brad,嗯,我确定我在 iTunes Connect 中配置更新时已指定,但现在我似乎找不到它

标签: iphone ios app-store


【解决方案1】:

如果某人的 iOS 版本低于部署目标,应用程序将拒绝启动。

我曾经有一个应用,其部署目标是 3.1。在更新中,我不小心将部署目标设置为 4.0。我的 iOS 3.1 客户随后无法运行该应用程序。我提交了另一个更新,其唯一的变化是将部署目标放回 3.1。它再次为他们工作。

测试情况很不幸,是的。如果有人知道如何在没有专门用于该任务的额外设备的情况下测试早期版本,我希望他们能加入。

This article 您可能会感兴趣。

【讨论】:

  • 以此为基础;您的部署目标记录在您的 Info.plist 中,随后被 iTunes Store 用于信息显示和设备用于确定它是否可以运行该事物。如果可以的话,在设备上进行测试实际上非常重要,因为如果您尝试使用早期操作系统上不存在的 API,那么您的应用将无法启动,看起来就像它已经崩溃一样。
  • 我不确定重新设置部署目标是否可以,但听起来可以。谢谢
  • 事实证明,如果您在任何地方执行[UIPopoverController alloc](即使它没有实际执行),应用程序一启动就会崩溃。使用 [NSClassFromString(@"UIPopoverController") alloc] 可以解决这个问题。实际上,当 SDK 仍然支持在 iOS 3.1.3 上运行时,我就意识到了这一点,但是当他们放弃该选项时,我也忘记了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-23
  • 1970-01-01
  • 2011-05-09
  • 1970-01-01
相关资源
最近更新 更多