前几天开发完一个APP准备打包上架,本地功能经过测试人员的测试都OK了,可是上传到App Store的时候苹果就给我发了一封这样的邮件,邮件内容截图如下:
邮件主要内容就是:新的APP使用UIWebView不再被接受,请用更安全和性能更高的WKWebView替换,更多的信息请访问https://developer.apple.com/documentation/uikit/uiwebview
下面我们就从看得见和看不见的UIWebView入手解决问题:
一、解决项目中全局搜索所有看得见的UIWebView问题
既然是因为UIWebView引起的当然,最简单的方法就是我们自己检查一下项目有没有使用UIWebView控件,我自己确定很久以前就开始没用UIWebView了,既然项目中都是用的WKWebView,那么会不会是项目中含有“UIWebView”字眼或者第三方有使用这个UIWebView控件呢?这个时候来一个全局搜索,如下图:
从上面的搜索结果看,果然发现了一些端倪,AFNewtworking中使用了UIWebView,那么这个时候我们就来解决AFN的问题,既然是AFN相关的问题,直接去github上找作者是最好的方法,或者直接issue作者,而我是直接在里面进行了搜索,如下:
随便点开一个里面都有解答,如图:
从AFN作者的issue解答里面可以看到,作者在4.0版本以上就对此问题进行了解决,那么也说明我本地的AFN是4.0以下的,那么就进行升级吧,因为我是使用的cocoapods管理库,直接使用pod update --no-repo-update命令升级,但是无效!!!原来podfile文件里面直接使用的是pod 'AFNetworking',后面更换为:
经过这个之后才升级成功,这里说个小细节"~>"的含义是大于4.0版本,相当于指定AFN版本一定要大于4.0的意思,还有就是升级之后,AFN的POST和GET方法略有变化,如下图:
不过这个都是小事,替换原来的方法就OK了,到此为止AFN相关的UIWebView问题就已经解决了,再次打包上传App Store,可是可是可是,继续报同样的错误,直接被苹果机审下架了,哎。。。吐了一口加班的老血,可是全局搜索后项目中连UIWebView的字眼都看不到了,那么问题又出在哪呢?
二、解决项目中所有看不见的UIWebView问题
通过上面在项目中进行全局搜索之后,把所有能搜索到的看得见的UIWebView问题就解决了,
打开终端,cd到指定项目目录,使用命令:
grep -r UIWebView .
注意后面有英文句号,前面有空格。
命令含义就是查询包含UIWebView的文件,截图如下:
从上面执行命令后可以看到,两个地方含有UIWebView:
1、MMWebView中含有UIWebView的文字,不过没有使用这个UIWebView的控件,不影响;
2、关键的是项目中集成了微信支付,微信支付SDK的libWeChatSDK.a文件里面含有UIWebView,那这个就是关键了,需要解决。
打开微信开发者平台的文档,https://developers.weixin.qq.com/doc/oplatform/Downloads/iOS_Resource.html
其实这里面说得很清楚了,截图如下:
那么接下来就是使用微信支付的最新SDK啦,如果是下载下来拖入项目中就下载下来拖入项目中即可,主要就是要保证项目中使用的是最新版本微信支付SDK,同样的道理,其他支付SDK最好也是保持最新版本。
到此为止,项目中的关于UIWebView的问题应该是全部解决了,如果查找命令还查找出来其他包含UIWebView的,处理的方法都类似,升级或替换等等,反正UIWebView是用不了了。
如果以上的方法帮助到你了,欢迎分享,更欢迎简书底部赞赏,也可以直接打开支付宝进行打赏支持作者创作,感谢感谢!
支付宝账号:zouhuaping123@qq.com
欢迎和我交流,QQ和微信:834537795(小蜜蜂),最好优先添加微信。