【问题标题】:Supporting Both iOS 7 and iOS 8 With the Use of AutoLayout and Apple's Requirement使用 AutoLayout 和 Apple 要求同时支持 iOS 7 和 iOS 8
【发布时间】:2014-12-16 14:24:42
【问题描述】:

我在 2013 年 12 月推出了仅适用于 iOS 7 的第一个应用程序,因此我第一次体验了 iOS 8 市场上支持的两种操作系统。

由于我对这种体验很陌生,所以我想问一下最好的方法。我确信我的相当多的用户都在使用 iOS 7,但在 iOS 8 上会有很多用户。到目前为止,该应用程序在 iOS 7 和 8 上都运行良好,但我现在正在为 iPhone 6 更新它分辨率和小部件和 Touch ID 等功能。

我可以从 Xcode 6 支持 iOS 7 和 iOS 8 吗?如果是这样,我该怎么做?

例如,当我选择 iOS 8 作为部署目标时,我会收到来自 iOS 7 的折旧方法的警告,这很好。但是,我该怎么办?

在出现警告的代码中,如果我将其更改为 iOS 8 方法,那么在 iOS 7 设备上如何使用未用于 iOS 7 的代码?如果我切换回 iOS 7,我会收到警告“自动首选最大布局宽度在 8.0 之前的 iOS 版本上不可用”,因此 AutoLayout 的某些内容在情节提要上搞砸了。

另外,Apple 在 2015 年 2 月之前对应用程序的 iOS 8 要求 (https://developer.apple.com/news/?id=10202014a),这是否意味着我的应用程序必须仅支持 iOS 8?

我的问题基本上是在询问最好的前进方式。我应该只制作 iOS 8 并确保用户在升级之前需要更新他们的操作系统吗?

对此的任何建议都会非常有帮助和感激。

谢谢,

【问题讨论】:

    标签: ios objective-c xcode ios8 autolayout


    【解决方案1】:

    首先,如果您将部署目标设置为 8,那么您将最低 SDK 级别提高到 8.0,因此 iOS7 的任何人都无法运行您的新版本应用程序。所以回到 7.0。

    您需要做的是使用代码内逻辑来检测用户正在运行哪个 iOS 并提供最佳用户体验。

    有很多方法可以实现这一点,例如针对 respondsToSelector 进行测试、检查 iOS 版本 ([[UIDevice currentDevice] systemVersion]) 或 using macros

    【讨论】:

    • 非常感谢@Lefteris - 这真的很有帮助。那么,将目标设置为 iOS 7,我可以只使用 iOS 8 的方法吗?例如,我可以使用 TouchID 等,即使部署目标是 iOS 7。
    • 抱歉@Lefteris - 你对此还有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多