检测项目中是否包含UIWebView
苹果最近废弃了UIWebView的使用,所以要把工程中引用UIWebView的地方全换掉,不然每次提交审核都会发警告邮件,如下:ITMS-90809: Deprecated API Usage - App updates that use UIWebView will no longer be accepted as of December 2020\. Instead, use WKWebView for improved security and reliability. Learn more https://developer.apple.com/documentation/uikit/uiwebview
After you’ve corrected the issues, you can upload a new binary to App Store Connect.
用到UIWebView的场景如下(包括字符串):
1.自己代码中使用了UIWebView控件。
2.第三方库中使用:
1). README.md等资源文件中使用。
这些文件是没有引入项目的,要在pod库里找到相应的库文件夹,然后 show in finder便能找到。
2). 第三方库的注释里有使用UIWebView字眼。
3). 第三方framewok、.a文件等包含UIWebView,都是二进制文件(Binary file),这种情况只能等第三方库更新SDK了。
3.工程的一些本地配置里包含了UIWebView
搜索结果: UserInterfaceState.xcuserstate matches
1.UserInterfaceState.xcuserstate是什么?
该文件为xcode默认自带文件,是xcode的配置信息,git会用这个文件记录下来。 比如:手动删除此文件,退出xcode后重启xcode,此文件会自动创建并跟踪, git push的时候一般忽略此文件
解决:
场景1:
直接搜索替换成WKWebView即可
场景2:
注释和README文件里使用的UIWebView字眼应该是没影响的。至于frameword和.a文件中包含的引用只能等第三方库更新了,例如Twitter的SDK。
场景3:
xcode的配置信息文件,对于打出来的包应该页没啥影响。为了保险起见,还是删掉此文件,然后让Xcode重新生成一个新的。
检测项目中是否包含UIWebView
1.打开终端,cd + 把项目的工程文件所在文件夹拖入终端(即 得到项目的工程文件所在的路径)
2.输入以下命令(注意最后有个点号,而且点号和 UIWebView 之间必须有一个空格):
grep -r UIWebView .
3.以上操作都正确的话,会马上出现工程中带有 UIWebView 的文件的列表(包括在工程中无法搜索到的 .a 文件中对UIWebView 的引用),如下:
替换TwitterKit
在pod文件中,把 pod 'TwitterKit' 替换为 pod 'TwitterKit5'
进入TwitterSDK的github地址 https://github.com/twitter-archive/twitter-kit-ios/issues/120,可以看到如下信息:
链接:https://www.jianshu.com/p/9c1507509896