通用应用的 iOS 部署目标
Posted
技术标签:
【中文标题】通用应用的 iOS 部署目标【英文标题】:iOS Deployment Target for Universal App 【发布时间】:2011-01-07 19:10:18 【问题描述】:早安,*** 的各位。
我遇到了一个小问题,我无法通过 google、*** 或 Apple 文档找到可靠的答案。也许我没有在寻找正确的关键字。任何人,继续我的简单、愚蠢的问题:
我目前正在开发一个通用应用程序。 我希望将 ios 部署目标设置为 iPad 的 3.2+ 和 iPhone/iPod Touch 的 4.0+,但设置只有一个字段。我应该将此值设置为 3.2 还是 4.0? 3.2 不是只有 iPad 的 SDK 吗?是否需要在两个项目构建设置和目标构建设置中设置此值?
请注意:我使用的是'Latest iOS (currently set to 4.2)'作为Base SDK,在阅读了以下内容后,我仍然无法得出一个明确的答案: p>
http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html
非常感谢您对此事的任何帮助。谢谢!
【问题讨论】:
【参考方案1】:您应该将 Base SDK 设置为最新版本,并将 Deployment Target 设置为 3.2。 那么––这很重要––如果您使用仅在 4.0 或更高版本中可用的任何 API(即,不在 3.2 中),那么您必须执行运行时检查以查看该 API实际可用,如果没有,请执行其他操作。
【讨论】:
兰德尔,感谢您的迅速回复。我一直将部署目标设置为 3.2,并且该应用程序可以在我的所有测试设备(iPad 3.2、iPhone4 4.1 和 iPhone3G 4.1)和模拟器中顺畅运行。关于您的评论,只要一切正常,我还需要进行此运行时检查吗?我在代码的几个地方使用了 if(UI_USER_INTERFACE_IDIOM) 条件。这样做就足够了,还是我应该做其他事情?我已经深入阅读了“使用基于 SDK 的开发”和“为基于 SDK 的开发配置项目”,并且正在苦苦挣扎。 所有 UI_USER_INTERFACE_IDIOM 告诉您的是您是在 iPhone/iPod 还是 iPad 上运行,而不是操作系统版本。如果您在 3.2 上运行时尝试调用仅限 4.x 的 API,您将崩溃。如果您调用 any 仅限 4.x 的 API(因为在 3.2 的运行时不可用),您只需进行运行时检查。以上是关于通用应用的 iOS 部署目标的主要内容,如果未能解决你的问题,请参考以下文章
发布 iOS 应用后,是不是可以将部署目标从 iOS8 更改为 iOS7?