Flutter-geolocator: Error de compilación en iOS

Creado en 15 ene. 2019  ·  3Comentarios  ·  Fuente: Baseflow/flutter-geolocator

🐛 Informe de errores

Hay varias advertencias que causan fallas en la compilación al agregar geolocator: ^ 2.1.1 al proyecto y apuntar a iOS.

No se pudo crear la aplicación para iOS
Salida de error de la compilación de Xcode:

* CONSTRUCCIÓN FALLIDA *

Salida de Xcode:

/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift:50 :59: error: 'openSettingsURLString' ha cambiado de nombre a 'UIApplicationOpenSettingsURLString'
guard let url = URL (cadena: UIApplication.openSettingsURLString),
^ ~ ~ ~ ~
UIApplicationOpenSettingsURLString
UIKit.UIAp plication :64 :22: nota: 'openSettingsURLString' se introdujo en Swift 4.2
clase pública let openSettingsURLString: String
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift:55 :45: error: las etiquetas de argumento '(rawValue:)' no coinciden con ninguna sobrecarga disponible
let optionsKeyDictionary = [UIApplication.OpenExternalURLOptionsKey(rawValue: "universalLinksOnly"): NSNumber(valor: verdadero)]
^ ~ ~ ~ ~ ~ ~ ~~
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift:55 :45: nota: existen sobrecargas para 'UIApplication.OpenExternalURLOptionsKey' con estas listas de parámetros que coinciden parcialmente: (codificador: NSCoder), (stringLiteral: StaticString), (formato: NSString, CVarArg...), (cadena: NSString ), (utf8String: UnsafePointer), (UTF8String: UnsafePointer), (cadena: Cadena), (contenidoDeArchivo: Cadena), (contenidoDe: URL), (contenidoDeURL: URL), (cCadena: UnsafePointer), (CString: UnsafePointer)
let optionsKeyDictionary = [UIApplication.OpenExternalURLOptionsKey(rawValue: "universalLinksOnly"): NSNumber(valor: verdadero)]
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager.swift:59:91: error: 'openSettingsURLString' ha cambiado de nombre a ' UIApplicationOpenSettingsURLString'
dejar éxito = UIApplication.shared.openURL(URL.init(cadena: UIApplication.openSettingsURLString)!)
^ ~ ~ ~ ~
UIApplicationOpenSettingsURLString
UIKit.UIApplication:64:22: nota: 'openSettingsURLString' se introdujo en Swift 4.2
clase pública let openSettingsURLString: String
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager.swift:99:54: error: parámetro de tupla de cierre '(clave: Cadena , valor: Cualquiera)' no admite la desestructuración
return Dictionary(uniqueKeysWithValues: input.map { clave, valor en (UIApplication.OpenExternalURLOptionsKey(rawValue: clave), valor)})
^ ~~~
regreso/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:27:31: advertencia: 'SFSafariViewController' solo está disponible en iOS 9.0 o posterior [-Wunguarded-availability]- (vacío)safariViewController:(SFSafariViewController )controlador^En el módulo 'SafariServices' importado de /Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:5:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks/SafariServices.framework/Headers/SFSafariViewController.h:27:12: nota: ' SFSafariViewController' se ha marcado explícitamente como parcial aquí@interfaz SFSafariViewController: UIViewController^/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:27:1: nota: anotar 'safariViewController:didCompleteInitialLoad:' con un atributo de disponibilidad para silenciar esta advertencia- (vacío)safariViewController:(SFSafariViewController *)controlador^/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:43:40: advertencia: 'SFSafariViewController' solo está disponible en iOS 9.0 o posterior [-Wunguarded-availability]- (vacío)safariViewControllerDidFinish:(SFSafariViewController *)controlador {^En el módulo 'SafariServices' importado de /Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:5:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks/SafariServices.framework/Headers/SFSafariViewController.h:27:12: nota: ' SFSafariViewController' se ha marcado explícitamente como parcial aquí@interfaz SFSafariViewController: UIViewController^/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:43:1: nota: anotar 'safariViewControllerDidFinish:' con una disponibilidad atributo para silenciar esta advertencia- (vacío)safariViewControllerDidFinish:(SFSafariViewController *)controlador {^API_DISPONIBLE(ios(9.0))/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:29:31: advertencia: comparación entre puntero y entero ('NSInteger ' (también conocido como 'largo') y 'vacío *')if (_previousStatusBarStyle != nil) {~ ~ ~ ~ ~ ^ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:111:45: advertencia: comparación entre puntero y entero ('NSInteger ' (también conocido como 'largo') y 'vacío *')if (self->_previousStatusBarStyle != nil) {~ ~ ~ ~ ~ ~ ~ ^ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:108:18: advertencia: ' openURL:options :completionHandler:' solo está disponible en iOS 10.0 o posterior [-Wunguarded-availability][aplicación openURL:url^ ~ ~En el módulo 'UIKit' importado de /Volumes/PROJECTS/nomadradar-app/repo/nomadradar/ios/Pods/Target Support Files/url_launcher/url_launcher-prefix.

*)opciones finalizaciónHandler:(void (^ __nullable)(BOOL éxito))finalización NS_AVAILABLE_IOS(10_0) NS_EXTENSION_UNAVAILABLE_IOS("");^/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:108:18: nota: adjuntar ' openURL:opciones :completionHandler: ' en una verificación @disponible para silenciar esta advertencia[aplicación openURL:url^ ~ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:3: advertencia: 'SFSafariViewController' solo está disponible en iOS 9.0 o posterior [-Wunguarded-availability]SFSafariViewController *safari = [[SFSafariViewController alloc] en itWithURL:url ];^ ~ ~ ~ ~~En el módulo 'SafariServices' importado de /Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:5:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks/SafariServices.framework/Headers/SFSafariViewController.h:27:12: nota: ' SFSafariViewController' se ha marcado explícitamente como parcial aquí@interfaz SFSafariViewController: UIViewController^/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:3: nota: incluya 'SFSafariViewController' en un @disponible marque para silenciar esta advertenciaSFSafariViewController *safari = [[SFSafariViewController alloc] en itWithURL:url ];^ ~ ~ ~ ~~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:38: advertencia: 'SFSafariViewController' solo está disponible en iOS 9.0 o posterior [-Wunguarded-availability]SFSafariViewController *safari = [[SFSafariViewController alloc] en itWithURL:url ];^ ~ ~ ~ ~~~~
En el módulo 'SafariServices' importado de /Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:5:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks/SafariServices.framework/Headers/SFSafariViewController.h:27:12: nota: ' SFSafariViewController' se ha marcado explícitamente como parcial aquí
@interfaz SFSafariViewController: UIViewController
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:38: nota: adjunte 'SFSafariViewController' en un @disponible marque para silenciar esta advertencia
SFSafariViewController *safari = [[SFSafariViewController alloc] en itWithURL:url ];

Comportamiento esperado

Sin errores.

Pasos de reproducción

Configuración

Versión: ^2.1.1

[✓] Flutter (Canal estable, v1.0.0, en Mac OS X 10.13.6 17G4015, configuración regional de-DE)
• Flutter versión 1.0.0 en /Users/dirkeisold/programming/flutter
• Revisión del marco 5391447fae (hace 7 semanas), 2018-11-29 19:41:26 -0800
• Revisión del motor 7375a0f414
• Dart versión 2.1.0 (compilación 2.1.0-dev.9.4 f9ebf21297)

[✓] Cadena de herramientas de Android: desarrollo para dispositivos Android (Android SDK 28.0.3)
• SDK de Android en /Users/dirkeisold/programming/android-sdk-macosx
• La ubicación del NDK de Android no está configurada (opcional; útil para la compatibilidad con perfiles nativos)
• Plataforma android-28, herramientas de compilación 28.0.3
• ANDROID_HOME = /Usuarios/dirkeisold/programación/android-sdk-macosx
• Binario de Java en: /Aplicaciones/Android Studio 3.2.app/Contents/jre/jdk/Contents/Home/bin/java
• Versión de Java OpenJDK Runtime Environment (compilación 1.8.0_152-release-1136-b06)
• Se aceptan todas las licencias de Android.

[✓] Cadena de herramientas de iOS: desarrollo para dispositivos iOS (Xcode 10.1)
• Xcode en /Aplicaciones/Xcode.app/Contents/Developer
• Xcode 10.1, versión de compilación 10B61
• ios-deploy 2.0.0
• CocoaPods versión 1.5.3

Comentario más útil

@deisold , @tommaso1 , la razón por la que está teniendo este problema es probablemente porque todavía está compilando contra una versión anterior de SWIFT (creo que el valor predeterminado actual es 4.1). Simplemente puede cambiar esto actualizando su Podfile usando las siguientes instrucciones.

En su Podfile, asegúrese de agregar la línea use_frameworks. (lo mejor es agregar esta línea directamente debajo del corredor objetivo, así:

target 'Runner' do
  use_frameworks!

También en su Podfile, asegúrese de agregar la línea config.build_settings['SWIFT_VERSION'] = '4.2' al bloque post_installer. Después de agregar esta línea, el bloque post_installer debería verse así:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
      config.build_settings['SWIFT_VERSION'] = '4.2'
    end
  end
end

Todos 3 comentarios

+1

prueba flutter clean flutter clean

@deisold , @tommaso1 , la razón por la que está teniendo este problema es probablemente porque todavía está compilando contra una versión anterior de SWIFT (creo que el valor predeterminado actual es 4.1). Simplemente puede cambiar esto actualizando su Podfile usando las siguientes instrucciones.

En su Podfile, asegúrese de agregar la línea use_frameworks. (lo mejor es agregar esta línea directamente debajo del corredor objetivo, así:

target 'Runner' do
  use_frameworks!

También en su Podfile, asegúrese de agregar la línea config.build_settings['SWIFT_VERSION'] = '4.2' al bloque post_installer. Después de agregar esta línea, el bloque post_installer debería verse así:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
      config.build_settings['SWIFT_VERSION'] = '4.2'
    end
  end
end
¿Fue útil esta página
0 / 5 - 0 calificaciones