Cuando migré a Swift 4.2 el año pasado, el migrador de Swift 4.2 agregó una función auxiliar en algunos de mis controladores:
// Helper function inserted by Swift 4.2 migrator. fileprivate func convertToUIApplicationOpenExternalURLOptionsKeyDictionary(_ input: [String: Any]) -> [UIApplication.OpenExternalURLOptionsKey: Any] { return Dictionary(uniqueKeysWithValues: input.map { key, value in (UIApplication.OpenExternalURLOptionsKey(rawValue: key), value)}) }¿Cuándo es seguro retirarlo?
Presumiblemente, alguna función en ese archivo (o en una versión anterior del archivo) llama a este método UIApplication :
func open(_ url: URL, options: [UIApplication.OpenExternalURLOptionsKey : Any] = [:], completionHandler completion: ((Bool) -> Void)? = nil)Antes de iOS 12, el método tenía una firma diferente:
func open(_ url: URL, options: [String : Any] = [:], completionHandler completion: ((Bool) -> Void)? = nil) Cuando Xcode 10 migró su proyecto, agregó la función convertToUIApplicationOpenExternalURLOptionsKeyDictionary e insertó una llamada a esa función en cada llamada al método open(_:options:completionHandler:) para traducir el diccionario de opciones.
Si actualiza cada llamada al método open(_:options:completionHandler:) para usar las constantes UIApplication.OpenExternalURLOptionsKey , puede eliminar las llamadas a convertToUIApplicationOpenExternalURLOptionsKeyDictionary y eliminar la función por completo.