过期 API 定位

优质
小牛编辑
124浏览
2023-12-01

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环节将无用文件剔除

    ```ruby

    移除[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
```

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