ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebVi...

前言

今天是疫情后第一天上班,本来准备对自己负责的APP上个"船新"版本,但谁曾想刚提交到APP Store,就收到了这个报错的邮件。大概意思是从2020.4.1开始苹果停止接收使用UIWebView技术的APP上线或者迭代,之前使用UIWebView的应用可以正常使用。

虽然说不影响这次的上线,但是这个错误放在那也不是个事,所以笔者就开始着手删掉不必要的UIWebView代码。

1:删除项目中所有使用到UIWebView的代码,包括代理方法。

这一步比较简单,不再赘述。

2:删除第三方中使用的UIWebView代码。

(1):如果说这个库作者更新比较及时的话,那么你完全可以给作者提issues,等待作者更新。
(2):如果你使用的这个库如果你发现上一次更新是几年前的话,那就只能自己动手改了。改起来也很容易,先fork到自己的git仓库,然后删掉UIWebView相关代码。最后到项目的Podfile文件中把这个第三方库路径改成自己的github仓库地址就可以了。这样做的好处是,不会因为自己不经意的操作而覆盖掉修改好的代码,以后新的项目也可以直接使用。

部分第三方库解决方案(持续更新,欢迎补充)

AFNetworking:

AFNetwoking里面主要是UI组件用到了UIWebView相关的API,我想也是大多数人最可能碰到的问题。
附上解决方案:

如果说你没有使用到UI组件的话,可以将Podfile文件中的
pod 'AFNetworking', '~> 3.2.1'
替换为
pod 'AFNetworking/NSURLSession', '3.2.1'
pod 'AFNetworking/Reachability', '3.2.1'
pod 'AFNetworking/Security', '3.2.1'
pod 'AFNetworking/Serialization', '3.2.1'

最新解决方法:AFNetworking现已更新到4.0版本,除去了UIWebView相关代码,可以直接

pod 'AFNetworking', '~> 4.0'

使用到UI组件的小伙伴也不要灰心,可以关注下这个issues地址:
https://github.com/AFNetworking/AFNetworking/issues/4505,关注后续这个问题的解决方案。

BlocksKit:

这个是笔者非常喜欢用的一个库,如果有小伙伴碰到UIWebView被拒绝的问题,可以直接使用,笔者已经将其中的UIWebView相关代码删除。

pod 'BlocksKit', :git =>'https://github.com/Tioks/BlocksKit'

WebViewJavascriptBridge:

这个库相信使用的人也非常多,贴上pod地址

pod 'WebViewJavascriptBridge',:git =>'https://github.com/BigPoro/WebViewJavascriptBridge.git'

你可能感兴趣的:(ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebVi...)