iOS:已弃用的元素会继续在遗留应用程序中运行吗?

问题描述 投票:0回答:2

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

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

ios objective-c iphone deprecated
2个回答
2
投票

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

有时这是因为API不再有用或存在缺陷(例如,创建安全漏洞),但通常是因为它已被优质API取代而且Apple鼓励您采用新API。

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

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

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

根据具体情况需要多长时间。在下一个操作系统中可能会删除安全性有缺陷的API。在规模的另一端,你有字符串编码API已被弃用近十年(因为它们无法正确处理所有Unicode转换情况),但它们仍然包含在框架中,仍然像宣传的那样起作用。

在像UIWebView这样备受瞩目的课程中,我希望它能在未来几年继续发挥作用,但它不会得到改进或获得WKWebView的任何新功能。因此,随着时间的推移,它的外观和行为将越来越陈旧。对您的应用程序来说,重要的是对您的开发的主观决定。


2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.