存在背景:提交一個(gè)新APP時(shí)缓呛,構(gòu)建時(shí)蘋果發(fā)來(lái)郵件提示存在一個(gè)ITMS棚品,意思是不允許使用UIWebView,蘋果已經(jīng)規(guī)定2020-4-30以后提交的新APP不能使用UIWebView,舊應(yīng)用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)).
項(xiàng)目中已經(jīng)把UIWebView處理了靠欢,但是AFN網(wǎng)絡(luò)框架是3.2.1,里面還存在UIWebView的分類,AFN升級(jí)4.0是可以處理UIWebView铜跑,但是4.0目前還存在一定的bug门怪,不適用于我們。
后面尋找處理方案如下:
一:pod 里只加載相關(guān)子模塊锅纺,摒棄UIKit模塊(該方式適用于我們公司掷空,但是要是有用到UIkit模塊的,就會(huì)不適用)
pod 'AFNetworking', '~> 3.0', :subspecs => ['Reachability', 'Serialization', 'Security', 'NSURLSession']
二:摒棄UIKit模塊可能會(huì)不適用于某些項(xiàng)目,所以查找了相應(yīng)的處理方案(只提供思路坦弟,因?yàn)槲覀冺?xiàng)目并不需要適用該方式)
//在您的Podfile中添加此代碼疼电,只需刪除與UIWebView相關(guān)的文件即可。
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