处理APP内,AFN中存在UIWebView的问题

存在背景:提交一个新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://developer.apple.com/documentation/uikit/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

你可能感兴趣的:(处理APP内,AFN中存在UIWebView的问题)