我有一个我维护的旧应用程序。该应用程序最初是在 XCode 4.2 上编译的。如果我采用完全相同的项目在 XCode 4.6 上找到并编译它,我会遇到一些奇怪的错误,例如 ViewControllers 不刷新、Back 无法正常工作等。如果我将采用相同的项目并在我的另一台机器上的 xcode 4.2 上重新编译它,一切都会正常工作。在我深入研究代码之前,有人可以告诉我为什么会发生这样的事情吗?我的主要嫌疑人是每个 Xcode 的 Base SDK。那有意义吗?
问问题
197 次
1 回答
1
我无法告诉您 4.2 和 4.6 之间是否会有差异,但从历史上看,设备上的 iOS 框架(以及在较小程度上,模拟器)确实会根据应用程序编译的 SDK 版本略有调整反对。你不能排除它。
一个经典(虽然现在很古老)的例子是背景。当按下 Home 按钮时,针对旧 SDK 构建的应用程序会退出,而不是获得更新的行为。最近(但微妙)的示例包括对表格视图的一些更改和对设备旋转的更改。
您不应尝试使用较新的编译器使用较旧的 SDK 进行构建。Apple 不支持这种配置。您应该始终使用最新的 SDK。无论如何,您不会想假装这些问题不存在:这些错误是真实的,它们之前只是被隐藏了。
您不太可能无法以旧版 iOS 继续运行的方式修复这些错误(尽管您可能会发现它会打开一堆您认为不值得为旧版操作系统修复的蠕虫)。
于 2013-02-25T18:11:52.677 回答