近期提審公司的一款應(yīng)用堰燎,遇到UIWebView的坑,在這里總結(jié)一下:
目前上傳構(gòu)建包的時(shí)候笋轨,如果掃描到代碼中含有UIWebView源碼引用或者靜態(tài)庫(kù)就會(huì)收到一下郵件:
證明你這個(gè)代碼中有UIWebView相關(guān)問(wèn)題秆剪,通常在xcode全局一搜UIWebView赊淑,替換為WKWebView即可。如果你引用三方framework或者pod庫(kù)中包含UIWebView也會(huì)被檢測(cè)到仅讽。
這里推薦一個(gè)檢測(cè)UIWebView的方法:
在控制臺(tái)陶缺,cd 到代碼根目錄,然后輸入
?find . -type f | grep -e ".a" -e ".framework" | xargs grep -s UIWebView
結(jié)果如下:
./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);
會(huì)詳細(xì)找到framwork或者.a 中的全部問(wèn)題洁灵。
我這里采用pod方式引用了?WebViewJavascriptBridge??
采用pod方式饱岸,如果有UIWebView引用如何處理
這里有個(gè)podfile的寫(xiě)法??
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和代碼層級(jí)。
以上双抽,提審UIWebView問(wèn)題就差不多了~