iOS:不推荐使用的元素会继续在遗留应用程序中工作吗?

Posted

技术标签:

【中文标题】iOS:不推荐使用的元素会继续在遗留应用程序中工作吗?【英文标题】:iOS: Will deprecated elements continue to work in legacy applications? 【发布时间】:2019-03-21 13:20:26 【问题描述】:

我有几个多年前开发的 ios 企业应用程序,其中一些早期的应用程序包含 Apple 已弃用的元素,例如 UIWebView。

我的问题是,在 Apple 停止支持已弃用的元素后,这些元素会继续在现有应用程序中工作吗?或者我是否需要进入并更新所有应用中已弃用的元素以保持功能?

【问题讨论】:

我认为这取决于用户在其设备上运行的操作系统版本。 好点。这是我没有想到的。 【参考方案1】:

当 Apple 弃用某个 API 时,这意味着他们打算在未来停止支持该 API。

有时这是因为 API 不再有用或存在缺陷(例如,造成安全漏洞),但这通常是因为它已被高级 API 取代,Apple 鼓励您采用新的 API。

在现有操作系统上运行的现有应用程序自然会继续运行。

当 Apple 将一种 API 替换为另一种 API 时,他们通常会尽可能长时间地维护旧版(已弃用)API。因此,您的应用很可能至少可以在接下来的几个主要操作系统版本上运行。

Apple 还试图避免强迫您选择新的 API,因为这会使开发变得复杂,因为如果您希望应用程序与早期版本的操作系统兼容,您现在必须在应用程序中支持两个 API。 (当然,如果你现在想要新 API 的功能,你没有太多选择:要么同时支持这两种 API,要么限制你的应用可以运行的操作系统版本。)

多长时间视具体情况而定。下一个操作系统中可能会删除有安全缺陷的 API。另一方面,字符串编码 API 已被弃用近十年(因为它们无法正确处理所有 Unicode 转换情况),但它们仍包含在框架中,并且仍然像宣传的那样发挥作用。

在像UIWebView 这样的知名课程上,我预计它会在未来几年继续工作,但它不会得到改进或获得WKWebView 的任何新功能。因此,随着时间的推移,它的外观和行为会越来越过时。这对您的应用有多重要是您开发的主观决定。

【讨论】:

感谢您的详细解释。在这种情况下,确实是我要询问的 UIWebView,因为它确实需要根据操作系统选择新的或旧的,这似乎是一件奇怪的事情。我也对 WKWebView 感到沮丧,但最终弄明白了。【参考方案2】:

我相信这取决于用户设备上的操作系统版本。如果操作系统不再支持已弃用的元素,那么您可能会注意到类似于以下错误: "[Appname] needs to be updated"

【讨论】:

以上是关于iOS:不推荐使用的元素会继续在遗留应用程序中工作吗?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 VFP .NET OLEdb 提供程序不能在 64 位 Windows 中工作?

Lottie AnimationView 在 iOS 中不工作,但在 Android c# 实现中工作

Navigator.share 仅在 iOS 中工作一次,第二次单击会引发错误“用户代理不允许请求...”

UIAutomation 在 iOS 6 中工作,但在 iOS 7 中不工作 (UIATarget.setLocationWithOptions)

在 IOS 8 中工作的具有动态高度的 UITableView 行在 ios 7 中不工作

无法让自定义 url 方案在 iOS 中工作