Flutter-geolocator: Kompilierungsfehler auf iOS

Erstellt am 15. Jan. 2019  ·  3Kommentare  ·  Quelle: Baseflow/flutter-geolocator

🐛 Fehlerbericht

Es gibt verschiedene Warnungen, die einen Build-Fehler verursachen, wenn Geolocator: ^2.1.1 zum Projekt hinzugefügt wird und auf iOS abzielt.

Die iOS-App konnte nicht erstellt werden
Fehlerausgabe vom Xcode-Build:

* ERSTELLEN FEHLGESCHLAGEN *

Ausgabe von Xcode:

/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift:50 :59: Fehler: „openSettingsURLString“ wurde in „UIApplicationOpenSettingsURLString“ umbenannt
guard let url = URL (string: UIApplication.openSettingsURLString),
^ ~ ~ ~ ~
UIApplicationOpenSettingsURLString
UIKit.UIApplication :64 :22: Hinweis: „openSettingsURLString“ wurde in Swift 4.2 eingeführt
öffentliche Klasse 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: Argumentlabels '(rawValue:)' stimmen mit keinen verfügbaren Überladungen überein
let optionsKeyDictionary = [UIApplication.OpenExternalURLOptionsKey(rawValue: "universalLinksOnly"): NSNumber(value: true)]
^ ~ ~ ~ ~ ~ ~ ~~
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift:55 :45: Hinweis: Überladungen für 'UIApplication.OpenExternalURLOptionsKey' existieren mit diesen teilweise übereinstimmenden Parameterlisten: (coder: NSCoder), (stringLiteral: StaticString), (format: NSString, CVarArg...), (string: NSString ), (utf8String: UnsafePointer), (UTF8String: UnsafePointer), (string: String), (contentsOfFile: String), (contentsOf: URL), (contentsOfURL: URL), (cString: UnsafePointer), (CString: UnsafePointer)
let optionsKeyDictionary = [UIApplication.OpenExternalURLOptionsKey(rawValue: "universalLinksOnly"): NSNumber(value: true)]
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager.swift:59:91: error: 'openSettingsURLString' has been renamed to ' UIApplicationOpenSettingsURLString'
let success = UIApplication.shared.openURL(URL.init(string: UIApplication.openSettingsURLString)!)
^ ~ ~ ~ ~
UIApplicationOpenSettingsURLString
UIKit.UIApplication:64:22: Hinweis: „openSettingsURLString“ wurde in Swift 4.2 eingeführt
öffentliche Klasse let openSettingsURLString: String
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager.swift:99:54: Fehler: Closure-Tuple-Parameter '(Schlüssel: String , value: Any)' unterstützt keine Destrukturierung
return Dictionary(uniqueKeysWithValues: input.map { key, value in (UIApplication.OpenExternalURLOptionsKey(rawValue: key), value)})
^ ~ ~~(arg) -> <#Ergebnis#> let (key, value) = arg;























~ ~ ~ ~ ^ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:111:45: Warnung: Vergleich zwischen Zeiger und Ganzzahl ('NSInteger ' (auch bekannt als 'long') und 'void *')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: Warnung: ' openURL:options :completionHandler:' ist nur unter iOS 10.0 oder neuer verfügbar [-Wunguarded-availability][Anwendung openURL:url^ ~ ~Im Modul „UIKit“, importiert aus /Volumes/PROJECTS/nomadradar-app/repo/nomadradar/ios/Pods/Target Support Files/url_launcher/url_launcher-prefix.

*)Optionen VervollständigungsHandler:(void (^ __nullable)(BOOL Erfolg))Vervollständigung 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: note: enclose ' openURL:options :completionHandler: ' in einer @available -Prüfung, um diese Warnung stumm zu schalten[Anwendung openURL:url^ ~ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:3: Warnung: „SFSafariViewController“ ist nur unter iOS verfügbar 9.0 oder neuer [-Wunguarded-availability]SFSafariViewController *safari = [[SFSafariViewController alloc] in itWithURL:url ];^ ~ ~ ~ ~~Im Modul 'SafariServices' importiert aus /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: Hinweis: ' SFSafariViewController' wurde hier explizit als partiell markiert@interface SFSafariViewController : UIViewController^/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:3: Hinweis: Schließen Sie „SFSafariViewController“ in ein @available ein Aktivieren Sie diese Option, um diese Warnung stumm zu schaltenSFSafariViewController *safari = [[SFSafariViewController alloc] in itWithURL:url ];^ ~ ~ ~ ~~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:38: Warnung: „SFSafariViewController“ ist nur unter iOS verfügbar 9.0 oder neuer [-Wunguarded-availability]SFSafariViewController *safari = [[SFSafariViewController alloc] in itWithURL:url ];^ ~ ~ ~ ~~~~
Im Modul 'SafariServices' importiert aus /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: Hinweis: ' SFSafariViewController' wurde hier explizit als partiell gekennzeichnet
@interface SFSafariViewController : UIViewController
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:38: Hinweis: Schließen Sie „SFSafariViewController“ in ein @available ein Aktivieren Sie diese Option, um diese Warnung stumm zu schalten
SFSafariViewController *safari = [[SFSafariViewController alloc] in itWithURL:url ];

Erwartetes Verhalten

Keine Fehler.

Reproduktionsschritte

Aufbau

Version: ^2.1.1

[✓] Flutter (Channel stable, v1.0.0, auf Mac OS X 10.13.6 17G4015, Gebietsschema de-DE)
• Flutter-Version 1.0.0 unter /Users/dirkeisold/programming/flutter
• Framework-Revision 5391447fae (vor 7 Wochen), 2018-11-29 19:41:26 -0800
• Motorrevision 7375a0f414
• Dart-Version 2.1.0 (Build 2.1.0-dev.9.4 f9ebf21297)

[✓] Android Toolchain – Entwicklung für Android-Geräte (Android SDK 28.0.3)
• Android-SDK unter /Users/dirkeisold/programming/android-sdk-macosx
• Android NDK-Speicherort nicht konfiguriert (optional; nützlich für native Profiling-Unterstützung)
• Plattform Android-28, Build-Tools 28.0.3
• ANDROID_HOME = /Users/dirkeisold/programming/android-sdk-macosx
• Java-Binärdatei unter: /Applications/Android Studio 3.2.app/Contents/jre/jdk/Contents/Home/bin/java
• Java-Version OpenJDK Runtime Environment (Build 1.8.0_152-release-1136-b06)
• Alle Android-Lizenzen akzeptiert.

[✓] iOS-Toolchain – Entwicklung für iOS-Geräte (Xcode 10.1)
• Xcode unter /Applications/Xcode.app/Contents/Developer
• Xcode 10.1, Build-Version 10B61
• ios-bereitstellung 2.0.0
• CocoaPods-Version 1.5.3

Hilfreichster Kommentar

@deisold , @tommaso1 , der Grund für dieses Problem ist wahrscheinlich, dass Sie immer noch gegen eine ältere SWIFT-Version kompilieren (ich glaube, die aktuelle Standardeinstellung ist 4.1). Sie können dies einfach ändern, indem Sie Ihr Podfile anhand der folgenden Anweisungen aktualisieren.

Stellen Sie sicher, dass Sie in Ihrem Podfile die Zeile use_frameworks hinzufügen! (Am besten fügen Sie diese Zeile direkt unter dem Ziel-Runner hinzu:

target 'Runner' do
  use_frameworks!

Stellen Sie außerdem sicher, dass Sie in Ihrem Podfile die Zeile config.build_settings['SWIFT_VERSION'] = '4.2' zum post_installer-Block hinzufügen. Nach dem Hinzufügen dieser Zeile sollte der post_installer-Block so aussehen:

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

Alle 3 Kommentare

+1

Versuchen Sie Flatter Clean flutter clean

@deisold , @tommaso1 , der Grund für dieses Problem ist wahrscheinlich, dass Sie immer noch gegen eine ältere SWIFT-Version kompilieren (ich glaube, die aktuelle Standardeinstellung ist 4.1). Sie können dies einfach ändern, indem Sie Ihr Podfile anhand der folgenden Anweisungen aktualisieren.

Stellen Sie sicher, dass Sie in Ihrem Podfile die Zeile use_frameworks hinzufügen! (Am besten fügen Sie diese Zeile direkt unter dem Ziel-Runner hinzu:

target 'Runner' do
  use_frameworks!

Stellen Sie außerdem sicher, dass Sie in Ihrem Podfile die Zeile config.build_settings['SWIFT_VERSION'] = '4.2' zum post_installer-Block hinzufügen. Nach dem Hinzufügen dieser Zeile sollte der post_installer-Block so aussehen:

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
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen