苹果表示,App仍在使用已弃用的UIWebView API嵌入网络内容的开发者,应尽快更新为WKWebView以提升安全性和稳定性。
WKWebView可将网页处理限制在App的网页视图中,从而确保不安全的网站内容不会影响到App的其他部分。此外,iOS、macOS和Mac Catalyst均支持WKWebView。
苹果提醒称,2020年4月起App Store将不再接受使用UIWebView的新App,2020年12月起将不再接受使用UIWebView的App更新。
否则upload到appstore connect时候,会收到错误issule的邮件:
- Dear Developer,
-
- We identified one or more issues with a recent delivery for your app, "xxx" 1.0.3 (10003). 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).
-
- Best regards,
-
- The App Store Team
可能有些童鞋在工程里全局搜索UIWebView,却发现没有使用UIWebView,这时候可以用这个方法:
打开终端,cd到项目根目录。
执行以下命令,就能查找到哪些文件内还在使用UIWebview。
- grep -r UIWebView .
效果如下:
- $ grep -r UIWebView .
- Binary file ./proj.ios/wechatSDK/libWeChatSDK.a matches
- Binary file ./proj.ios/ThreeCards.xcodeproj/project.xcworkspace/xcuserdata/kktoo.xcuserdatad/UserInterfaceState.xcuserstate matches
命令查找所有使用到UIWebView的文件,该升级的升级,该替换的替换,该删除的删除。
比如我的项目,就是因为libWeChatSDK.a这个文件导致的。这个是微信sdk的文件,腾讯已经针对性的升级了sdk版本,所以我做了下微信sdk升级,就解决了这个问题。