iOS 删除UIWeView

苹果要求Xcode 11之后废弃使用UIWebView,改用WKWebView。如果有使用的话,打包之后会有警告,让你下次使用WKWebView。

ITMS-90809: Deprecated API Usage - App updates that use UIWebView will no longer be accepted as of December 2020. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).

//全局查找UIWebView,然后进行修改
1.打开终端 进去到项目目录
2.输入命令 : grep -r UIWebView .//注意有空格和一个点
grep -r UIWebView .  

开始我是全局在项目中搜素UIWebView修改,改完之后提交新版本还是收到了警告,后来想到可能是第三方的库中会调用UIWebView。我就把该更新的库都更新了一遍,提交新版额还是会有警告。后来找到问题了,有几个库是是遗漏的,一个是银联的云闪付,一个是神策,QQ_MTA(这个绝对是毒瘤,排查了好久才查到)

神策使用的是 :pod 'SensorsAnalyticsSDK', :subspecs => ['DISABLE_UIWEBVIEW']

神策在pod 的时候就可以禁止使用UIWebView

银联等去银联开放平台中下载(没有找到银联的pod安装方法,所以是手动更新)
image.png

找到里面的libPaymentControl.a文件 ,替换到自己的文件中

还一个是QQ_MTA库,这个库去Pods中更新一下就好了,新版本是2.7.0
QQ_MTA库
(另一种查找方法)下面是我使用python代码来查询哪些文件使用了UIWebView,感觉有点不全,但是还是能排查出一部分
#!/usr/bin/env python 
# -*- coding:utf-8 -*-


import os
import subprocess

def check():
                                            #这里写自己的项目文件夹地址
    for path, dir_list, file_list in os.walk('/Users/shunlianwangluo/iOS2.0.1'):

        for file_name in file_list:

            # 略过 .DS_Store 文件
            if file_name.find('.DS_Store') != -1:
                continue

            # 略过 没有framework  .a 的文件
            #if path.find('.framework') == -1 and file_name.find('.a') == -1:
                #continue

            full_path = os.path.join(path, file_name)
            # print(full_path)

            if full_path.endswith('.h'):
                continue
            print(full_path)
            (status, output) = subprocess.getstatusoutput('file %s' % full_path)
            index = output.find('Mach-O universal binary')
            if index != -1:
                # print(full_path)

                (status, output) = subprocess.getstatusoutput('strings %s | grep -ir "uiwebview"' % full_path)
                if len(output) > 0:
                    #这里打印的就是存在UIWebView的文件
                    print ('UIWebView  ---------- ',full_path)



if __name__ == "__main__":
    print('Start to check library')
    check()

具体Python.py的运行你可以复制代码保存到桌面,保存为searchUIWebView.py 文件,然后然后根据下面链接中的步骤进行运行.
https://www.jianshu.com/p/a42f9c54b52b

运行需要一会时间,等运行结束之后
然后搜索一下 UIWebView ----------,看看这个打印的文件有哪些,找到这些文件,该删除的删除,该更新的更新.

你可能感兴趣的:(iOS 删除UIWeView)