为 iOS 6 或更早版本构建的应用程序能否在 iOS 7 上正常运行?
Posted
技术标签:
【中文标题】为 iOS 6 或更早版本构建的应用程序能否在 iOS 7 上正常运行?【英文标题】:Will apps built for iOS 6 or earlier versions run without issues on iOS 7? 【发布时间】:2013-07-15 16:02:52 【问题描述】:或者是否每个应用程序制作者都需要对其应用程序进行更新以使其在 ios 7 上运行。我认为不会,但我希望得到确认,以及在运行时为早期版本的 iOS 构建的应用程序中存在的一些风险在 iOS 7 上。
【问题讨论】:
一如既往,答案是“也许”。 【参考方案1】:每年都会出现这种情况。这并不特定于 iOS 7(或任何其他版本的 iOS)。
作为开发人员,您必须测试您现有的应用程序,以确保它们能够在即将推出的 iOS 版本下按原样运行。某些应用程序无需更改即可正常运行。许多应用都会遇到一些问题,从小的 UI 故障到频繁的崩溃。
您需要在测试设备上安装测试版 iOS 并从应用商店测试您的应用,看看您遇到了什么问题(如果有)。
如果您发现任何问题,则需要找到解决方案。在许多情况下,您无需更新到最新的 Base SDK 即可修复您的应用程序。但在某些情况下,您可能希望更新到最新版本并使用一些新功能,同时修复任何问题。
【讨论】:
【参考方案2】:你需要测试:
在 iOS 6 上构建,在 iOS 7 上运行(可能可以工作,可能存在轻微的外观问题) 针对 iOS 6 进行编码,基于 iOS 7 构建,在 iOS 7 上运行(可能需要改进) 针对 iOS 7 进行编码,基于 iOS 7 构建,在 iOS 6 上运行(可能需要大量工作)YMMV
【讨论】:
“在ios6上构建,在ios7上运行”怎么做? 您需要使用 XCode 4.6 的副本 - 您可以在升级之前将一个副本保存到不同的文件夹(不是应用程序)中。创建一个临时签名的应用程序以安装在 iOS 7 设备上。【参考方案3】:除非您使用的某些功能/特性从以前的 iOS SDK 版本中 100% 被弃用,否则您应该没问题。如果它是新弃用的东西,Apple 会在您必须更新之前为您提供几个版本以使用旧方法。一般来说,您所有的 iOS 6 应用程序都应该在 iOS 7 中正常运行。iOS 7 中的许多美学都需要一些样式调整,例如无边框按钮和一些颜色样式。
你最好的选择是最终保持苹果生态系统的外观和感觉,并遵守苹果的 ios7 指南。
但要回答您的问题,您的应用会运行,但可能会看起来过时。
https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/index.html
(您可能需要一个 Apple ID/dev 帐户才能访问上面的链接)
【讨论】:
【参考方案4】:有根据的猜测是,为 iOS 5 及更高版本开发的应用程序将在 iOS 7 上运行,因为这是 Cocoa Touch 框架内部架构的一个重大转折点,尽管这还为时过早。这取决于设备的架构(设备是否是为 iOS 4/5/6/7 制造的),以及您使用的每个特定版本有多少特定于操作系统的方法调用,以及对这些方法迁移的支持程度由 Apple 团队...
【讨论】:
【参考方案5】:根据我们的经验,您必须重新测试所有内容,并决定如何处理新的限制。
例如 - 使用麦克风有一个新的隐私权限,在 iOS7 上运行的基于 iOS6 的应用程序中是无法处理的。
另一个重要问题是在装有 iOS7 的旧设备(即 iPhone 4)上运行您的应用程序。我们在[application: didFinishLaunchingWithOptions:]
中发生了很多事情,而在 iOS 7 中,我们开始出现崩溃,因为这段代码运行时间要长得多,并且 iOS 会终止运行此方法超过 10 秒的应用程序。因此,我们不得不修改我们的代码,即使它与任何特定的 SDK 更改无关。
无论如何,我知道这既困难又耗时,但您永远无法判断新 iOS 会对您的应用产生什么影响,因此为了安全起见 - 您至少应该重新测试所有主要功能。如果可能的话,请认真考虑完全迁移到 iOS7。
【讨论】:
以上是关于为 iOS 6 或更早版本构建的应用程序能否在 iOS 7 上正常运行?的主要内容,如果未能解决你的问题,请参考以下文章
如果应用支持 iOS 8 或更早版本,Assets.car 不能包含 16 位或 P3 资产?
xcode 4.5 是不是支持 ios 4.3 模拟器或更早版本?
在 Firefox 60 或更早版本中为 SVG 剪辑路径设置动画时出现随机方块