美文网首页iOS填坑指南
iOS提审UIWebView的坑

iOS提审UIWebView的坑

作者: 闪现接Q | 来源:发表于2021-06-28 14:08 被阅读0次

近期提审公司的一款应用,遇到UIWebView的坑,在这里总结一下:

目前上传构建包的时候,如果扫描到代码中含有UIWebView源码引用或者静态库就会收到一下邮件:

apple审核反馈

证明你这个代码中有UIWebView相关问题,通常在xcode全局一搜UIWebView,替换为WKWebView即可。如果你引用三方framework或者pod库中包含UIWebView也会被检测到。

这里推荐一个检测UIWebView的方法:

在控制台,cd 到代码根目录,然后输入

 find . -type f | grep -e ".a" -e ".framework" | xargs grep -s UIWebView

结果如下:

./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.m:- (void)webViewDidFinishLoad:(UIWebView *)webView {

./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.m:- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {

./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.m:- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.m:- (void)webViewDidStartLoad:(UIWebView *)webView {

./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.h:    #import

./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.h:    #define WVJB_WEBVIEW_TYPE UIWebView

./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.h:    #define WVJB_WEBVIEW_DELEGATE_TYPE NSObject

./Pods/WebViewJavascriptBridge/WebViewJavascriptBridge/WebViewJavascriptBridge.h:    #define WVJB_WEBVIEW_DELEGATE_INTERFACE NSObject

./Pods/WebViewJavascriptBridge/README.md:An iOS/OSX bridge for sending messages between Obj-C and JavaScript in WKWebViews, UIWebViews & WebViews.

./Pods/WebViewJavascriptBridge/README.md:2) Instantiate WebViewJavascriptBridge with a WKWebView, UIWebView (iOS) or WebView (OSX):

./Pods/WebViewJavascriptBridge/README.md:##### `[WebViewJavascriptBridge bridgeForWebView:(WKWebVIew/UIWebView/WebView*)webview`

./Pods/WebViewJavascriptBridge/README.md: NSLog(@"Current UIWebView page URL is: %@", responseData);

会详细找到framwork或者.a 中的全部问题。

我这里采用pod方式引用了 WebViewJavascriptBridge  

采用pod方式,如果有UIWebView引用如何处理

这里有个podfile的写法  

pod 'WebViewJavascriptBridge', '~> 6.0.3'

pre_install do |installer|

  dir_web = File.join(installer.sandbox.pod_dir('WebViewJavascriptBridge'), 'WebViewJavascriptBridge')

  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

  }

end

仿照这种方法可以,修改pod中文件,可以指定删除,注意tag和代码层级。

以上,提审UIWebView问题就差不多了~

相关文章

网友评论

    本文标题:iOS提审UIWebView的坑

    本文链接:https://www.haomeiwen.com/subject/rszhultx.html