从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,需要去官网下载最新的工具包替换掉,然后更新一下调用方法即可。
网友评论