我应该选择哪个部署目标?

Posted

技术标签:

【中文标题】我应该选择哪个部署目标?【英文标题】:Which deployment target should I choose? 【发布时间】:2013-01-21 02:45:47 【问题描述】:

我有一个我一直在为 ios 6.1 开发的应用程序,我终于让它按我想要的方式工作了。

然后只是为了测试它在旧 iPhone 上的工作方式,我将部署目标设置为 5.1,当我运行它时,用户界面开始看起来一团糟。

有人知道为什么会这样吗?我应该将部署目标保持在 6.1 吗?如果是这样,我如何确保该应用在旧版 iPhone 上看起来正常?

ps - 这是我检查自动布局选项时的崩溃

 *** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint'
*** First throw call stack:

【问题讨论】:

我将首先研究您使用的逻辑,使其看起来像它的样子。如果我们不知道您的问题的确切性质,您会比我们任何人都清楚。对于初学者,也许您正在使用不推荐使用的方法。用户界面有什么不同?它是倒置的,它应该是蓝色的,它是黄色的,当设备旋转时它会发出淫秽的噪音吗?你收到任何编译警告吗? @Jeremy 实际上我只是仔细检查了一遍,这可能是因为我关闭了“自动布局”复选框以防止旧手机崩溃。但它有点搞砸了事情的样子。你知道为什么会这样吗? 很明显,自动布局对于视图的显示至关重要。我不会忽视崩溃问题。由于您需要自动布局,因此您需要找到导致崩溃的潜在问题。如果我们可以帮助您解决崩溃问题,那么您的原始问题将成为非问题。为了让你开始,我推荐你to this post。 @Jeremy 我刚刚发布了在 ios 5.1 模拟器上运行时发生的错误 @Genadinik 你的崩溃日志是完全正常的:AutoLayout 是一个完整的 iOS 6 功能。您不能在 iOS 5 及更低版本上使用它。如果您需要您的应用兼容 iOS 5 及更低版本,您需要禁用 Autolayout 并通过 Autoresizing Mask 设置您的视图 【参考方案1】:

iOS6.0 引入了自动布局

如果您希望您的应用在 iOS5.x 或 4.x 上运行,您必须禁用或不使用自动布局,或者根据设备运行的 iOS 对自动布局的使用进行版本控制(这很痛苦)。

部署目标是您希望应用运行的最旧的 iOS 版本。如果是 iOS5.0,那么它将在所有 iOS5.0 或更高版本的设备上运行

Here's a better answer

【讨论】:

以上是关于我应该选择哪个部署目标?的主要内容,如果未能解决你的问题,请参考以下文章

我应该选择哪个内存数据库? [关闭]

我的应用程序的部署目标

部署目标是啥意思?

当我可以使用Cell或RefCell时,我应该选择哪个?

基本目标与活动目标与部署目标

Eclipse - maven - 我应该执行啥目标才能从 maven 实际部署到 Wildfly(实现与“在服务器上运行”eclipse 命令相同的结果)