如何在当前项目中搜索任何UIWebView组件用法?

时间:2019-09-25 04:38:05

标签: ios xcode uiwebview wkwebview

提交我的最新版本时,Apple会对此警告做出回应。

  

ITMS-90809:不推荐使用的API-Apple将停止接受使用UIWebView API的应用程序的提交。有关更多信息,请参见https://developer.apple.com/documentation/uikit/uiwebview

仅供参考,我已经根据Apple的建议将所有UIWebView组件迁移到了我项目中的WKWebView组件,但是Apple仍然以相同的警告进行响应。

除了使用Xcode内的搜索功能之外,是否有任何方法可以搜索仍附加到我的项目的UIWebView元素?

3 个答案:

答案 0 :(得分:6)

您可以在项目中使用以下命令行进行查找。

<ngx-codemirror *ngIf="opened$ | async else loading"
....


<ng-template #loading>Loading...</ng-template>

答案 1 :(得分:2)

grep -r UIWebView适用于源,但部分适用于第三方二进制文件,因为它们一方面可以使用UIWebView包含引用,注释或字符串数​​据,而无需实际使用API​​;另一方面,它们可以使用它,但不能使用API有任何参考。

要检查二进制文件(应用程序,静态库或动态框架),应使用nm(llvm符号表转储程序)获取符号表,例如:

nm staticlib.a | grep UIWebView
0000000100117c38 t +[UIWebView(SCORVCE) load]
0000000100117c30 t +[UIWebView_SCORVCE_Importer import]
0000000100117ea4 t -[UIWebView(SCORVCE) vce_delegate]
0000000100117d54 t -[UIWebView(SCORVCE) vce_setDelegate:]
000000010012880c t -[VCETrack setUsingUIWebView:]
00000001001287fc t -[VCETrack usingUIWebView]
                 U _OBJC_CLASS_$_UIWebView
0000000100640668 s _OBJC_CLASS_$_UIWebView_SCORVCE_Importer
0000000100639f88 s _OBJC_IVAR_$_VCETrack._usingUIWebView
0000000100640640 s _OBJC_METACLASS_$_UIWebView_SCORVCE_Importer
0000000100117ca0 t ___26+[UIWebView(SCORVCE) load]_block_invoke

对于框架,您应该对其二进制文件执行相同的操作:

nm MyFramework.framework/MyFramework | grep UIWebView

最后要确保该应用程序不使用UIWebView,您应该进行存档,然后找到您的应用程序文件(YourApp.app)并在其中运行下一个脚本:

# Check the app with static libraries
echo "YourApp"
nm YourApp | grep UIWebView

# Check dynamic frameworks
for framework in Frameworks/*.framework; do
  fname=$(basename $framework .framework)
  echo $fname".framework"
  nm $framework/$fname | grep UIWebView
done

答案 2 :(得分:0)

嘿,我尝试在Xcode中搜索。 几个第三方库都使用了它。 (例如FBSDK) 我更新了这些库,但这还不够。

在下一次上传时,可怕的电子邮件再次到达。

然后我找到了这篇文章: https://medium.com/@zivchen_42755/for-me-that-wasnt-enough-it-didn-t-found-all-of-them-thats-weird-something-to-do-with-pod-i-a068d55b7fab

在评论中有人提到grep是药物。

所以我尝试了grep -r UIWebView /Path/To/Project/*

它发现了两个也使用UIWebView的二进制框架。 (GoogleSignin,Crashlytics ...) 我也更新了。

在下一次上传时,没有可怕的电子邮件:D