最近上架苹果应用时,收到这么一封邮件:
官方文档是这么解释的:
In apps that run in iOS 8 and later, use the WKWebView
class instead of using UIWebView
. Additionally, consider setting the WKPreferences property javaScriptEnabled to false if you render files that are not supposed to run JavaScript.
简单来说就是苹果爸爸打算于2020年12月废弃使用UIWebView,如果你的App适配的iOS版本大于8.0,就请全部替换为WKWebView
代码全局搜索了一下和UIWebView相关的代码,该适配的适该删除的删除。
但是,重点来了:后面再次提交构建版本的时候,又一次收到了这封邮件,还是关于UIWebView。
what?我不是都删了吗?
忽略了一个关键点就是第三方SDK,但是因为大多数第三方SDK都是使用的.a或.framework封装看不到具体代码实现,所以无法证实到底哪些SDK使用了UIWebView,不过也不是没有办法,cd到工程目录并使用下面这个命令:
find . -type f | grep -e ".a" -e ".framework" | xargs grep -s UIWebView
结果:
[./App/module/3rdPart/WXAPI/README.txt:1. 修改包含"UIWebView"字符的类名
Binary file ./App/module/3rdPart/GT3Captcha/GT3Captcha.framework/GT3Captcha matches
发现在GT3Captcha.framework这个文件中有引用,这个文件对应的是极验的SDK,打开对应开发网站找到iOS更新日志:
其实人家早就针对iOS13做了更新,下载最新版本SDK替换原来的就可以了
相关的还有例如libWeChatSDK.a和TencentOpenAPI.framework,做过QQ第三方登录的童鞋肯定有印象:
/**
* 登录授权
* \param permissions 授权信息列表
* \param bInSafari 是否使用safari进行登录.<b>IOS SDK 1.3版本开始此参数废除</b>
*/
- (BOOL)authorize:(NSArray *)permissions
inSafari:(BOOL)bInSafari;
解决办法同理,上对应QQ互联开发平台下载最新的SDK替换一下即可
如果本文对你有所帮助记得点个赞哈