????????從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已經(jīng)被棄用。
先來回顧一下相關(guān)知識。WKWebView是蘋果公司在iOS8系統(tǒng)推出的,相比于UIWebView的優(yōu)勢很明顯:
??????? 1.在性能、穩(wěn)定性、占用內(nèi)存方面有很大提升;
??????? 2.允許JavaScript的Nitro庫加載并使用(UIWebView中限制);
??????? 3.增加加載進度屬性:estimatedProgress,不用在自己寫進度條了;
??????? 4.更多的支持HTML5的特性;
??????? 5.官方宣稱的高達60fps的滾動刷新率以及內(nèi)置手勢;
??????? 6.Safari相同的JavaScript引擎;
????????五月一號之后,我司需要上架一個新的App,我Xcode提交成功之后,在iTunes Connect構(gòu)建版本中,顯示一會兒然后就自動消失了.....隨后蘋果給我發(fā)了一份郵件:
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).
(郵件大致內(nèi)容如本篇文章標題)于是經(jīng)過我反復(fù)修改,再次構(gòu)建版本,最終提交審核了。
【解決方法】
????????我們檢查項目中是否含有UIWebView,首先全局搜索UIWebView,移除相關(guān)方法、delegate和代理方法;(AFNetworking直接刪除UIWebView+AFNetworking這個擴展即可)
??????上面這個不能監(jiān)測到.a文件或者其他項目目錄中的文件中(如README.md純文本文件)是否含有UIWebView API,這個時候我們需要借助終端來進一步操作。
??????? 1、cd 到要檢查項目的根目錄(得到項目的工程文件所在路徑);
????????2、輸入以下命令(注意UIWebView后面有個空格和點號)
????????grep -r UIWebView .
????????3、對檢測出調(diào)用UIWebView的文件進行替換或者刪除;
像騰訊開放平臺的API和微信的iOS SDK都含有UIWebView,需要去官網(wǎng)下載最新的工具包替換掉,然后更新一下調(diào)用方法即可。