苹果停止接受含有UIWebView API 的新版App(附解决方法)

        从2020年开始,不管是老版本迭代更新还是新版本提交审核,都会收到AppStore Connect的警告邮件:

Dear Developer,

        We identified one or more issues with a recent delivery for your app, "******" 1.0 (1). Your delivery was successful, but you may wish to correct the following issues in your next delivery:    提醒我们尽快更换到WKWebView,UIWebView已经被弃用。

先来回顾一下相关知识。WKWebView是苹果公司在iOS8系统推出的,相比于UIWebView的优势很明显:

        1.在性能、稳定性、占用内存方面有很大提升;

        2.允许JavaScript的Nitro库加载并使用(UIWebView中限制);

        3.增加加载进度属性:estimatedProgress,不用在自己写进度条了;

        4.更多的支持HTML5的特性;

        5.官方宣称的高达60fps的滚动刷新率以及内置手势;

        6.Safari相同的JavaScript引擎;


        五月一号之后,我司需要上架一个新的App,我Xcode提交成功之后,在iTunes Connect构建版本中,显示一会儿然后就自动消失了.....随后苹果给我发了一份邮件:

反馈邮件截图

We identified one or more issues with a recent delivery for your app, "*****" 1.0 (1). Please correct the following issues, then upload again.

ITMS-90809: Deprecated API Usage- New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).

(邮件大致内容如本篇文章标题)于是经过我反复修改,再次构建版本,最终提交审核了。

【解决方法】

        我们检查项目中是否含有UIWebView,首先全局搜索UIWebView,移除相关方法、delegate和代理方法;(AFNetworking直接删除UIWebView+AFNetworking这个扩展即可)

      上面这个不能监测到.a文件或者其他项目目录中的文件中(如README.md纯文本文件)是否含有UIWebView API,这个时候我们需要借助终端来进一步操作。

        1、cd 到要检查项目的根目录(得到项目的工程文件所在路径);

        2、输入以下命令(注意UIWebView后面有个空格和点号)

        grep -r UIWebView .

        3、对检测出调用UIWebView的文件进行替换或者删除;

检索结果示例图

像腾讯开放平台的API和微信的iOS SDK都含有UIWebView,需要去官网下载最新的工具包替换掉,然后更新一下调用方法即可。

你可能感兴趣的:(苹果停止接受含有UIWebView API 的新版App(附解决方法))