存在背景:提交一个新APP时,构建时苹果发来邮件提示存在一个ITMS,意思是不允许使用UIWebView,苹果已经规定2020-4-30以后提交的新APP不能使用UIWebView,旧应用12月以后也要禁止
ITMS-90809: Deprecated API Usage** - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more ([https://deve<wbr>loper.apple.<wbr>com/document<wbr>ation/uikit/<wbr>uiwebview](https://developer.apple.com/documentation/uikit/uiwebview)).
项目中已经把UIWebView处理了,但是AFN网络框架是3.2.1,里面还存在UIWebView的分类,AFN升级4.0是可以处理UIWebView,但是4.0目前还存在一定的bug,不适用于我们。
后面寻找处理方案如下:
一:pod 里只加载相关子模块,摒弃UIKit模块(该方式适用于我们公司,但是要是有用到UIkit模块的,就会不适用)
pod 'AFNetworking', '~> 3.0', :subspecs => ['Reachability', 'Serialization', 'Security', 'NSURLSession']
二:摒弃UIKit模块可能会不适用于某些项目,所以查找了相应的处理方案(只提供思路,因为我们项目并不需要适用该方式)
//在您的Podfile中添加此代码,只需删除与UIWebView相关的文件即可。
pre_install do |installer|
puts 'pre_install begin....'
dir_af = File.join(installer.sandbox.pod_dir('AFNetworking'), 'UIKit+AFNetworking')
Dir.foreach(dir_af) {|x|
real_path = File.join(dir_af, x)
if (!File.directory?(real_path) && File.exists?(real_path))
if((x.start_with?('UIWebView') || x == 'UIKit+AFNetworking.h'))
File.delete(real_path)
puts 'delete:'+ x
end
end
}
puts 'end pre_install.'
end
end