过期API定位 - ShenYj/ShenYj.github.io GitHub Wiki

Tips: 过期API 定位

今年4月份, 苹果彻底扼杀了UIWebView, 新提交的包不再允许使用UIWebView, 旧项目推迟到2020年12月份

  • 通过grep快速定位包含UIWebView的文件

    grep -r UIWebView . >> .../UIWebView.txt
    1. Linux grep 命令用于查找文件里符合条件的字符串
    2. 筛选当前路径及子路径内包含UIWebView字样的文件, 并输出到指定路径下的UIWebView.txt文件中
    3. 参数-r 以递归的方式查找符合条件的文件

    通过这条命令可以帮我们整理列出全部包含UIWebView关键字的文件及路径, 包含一些静态库文件

  • 通过ruby来剔除CocoaPods依赖库中废弃的文件

    如果类库已经更新并移除了过期API, 优先建议更新依赖版本 如果想偷懒, 并且文件非必要, 可以通过ruby在执行pod install环节将无用文件剔除

    # 移除[U-I]WebView iOS 12 标记为过期, 2020.04起影响上线
    # 删除WebViewJavascriptBridge中的WebViewJavascriptBridge.h和WebViewJavascriptBridge.m文件
    pre_install do |installer|
    
    
    dir_bridge = installer.sandbox.pod_dir('WebViewJavascriptBridge')
    puts "#### dir_bridge ####  #{dir_bridge}"
    Dir.foreach(dir_bridge) {|x|
        real_path = File.join(dir_bridge, x)
        if (!File.directory?(real_path) && File.exists?(real_path))
        if(x == 'README.md')
            File.delete(real_path)
        end
        end
    }
    dir_web = File.join(dir_bridge, 'WebViewJavascriptBridge')
    puts "#### dir_web ####  #{dir_web}"
    Dir.foreach(dir_web) {|x|
        real_path = File.join(dir_web, x)
        if (!File.directory?(real_path) && File.exists?(real_path))
        if(x == 'WebViewJavascriptBridge.h' || x == 'WebViewJavascriptBridge.m')
            File.delete(real_path)
        end
        end
    }
    
    dir_mj = installer.sandbox.pod_dir('MJRefresh')
    puts "#### dir_mj ####  #{dir_mj}"
    Dir.foreach(dir_mj) {|x|
        real_path = File.join(dir_mj, x)
        if (!File.directory?(real_path) && File.exists?(real_path))
        if(x == 'README.md')
            File.delete(real_path)
        end
        end
    }
    
    dir_sinaWB = installer.sandbox.pod_dir('Weibo_SDK')
    puts "#### dir_sinaWB ####  #{dir_sinaWB}"
    Dir.foreach(dir_sinaWB) {|x|
        real_path = File.join(dir_sinaWB, x)
        if (!File.directory?(real_path) && File.exists?(real_path))
        if(x == 'README.md')
            File.delete(real_path)
        end
        end
    }
    
    end

这里只是提到一种处理问题的思路, 但并不是最优方案

⚠️ **GitHub.com Fallback** ⚠️