Flutter-geolocator: Erreur de compilation sur iOS

Créé le 15 janv. 2019  ·  3Commentaires  ·  Source: Baseflow/flutter-geolocator

🐛 Rapport de bogue

Plusieurs avertissements provoquent l'échec de la construction lors de l'ajout du géolocalisateur : ^2.1.1 au projet et ciblant iOS.

Échec de la création de l'application iOS
Sortie d'erreur de la construction Xcode :

* ÉCHEC DE CONSTRUCTION *

Sortie de Xcode :

/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift:50 :59 : erreur : 'openSettingsURLString' a été renommé en 'UIApplicationOpenSettingsURLString'
guard let url = URL (chaîne : UIApplication.openSettingsURLString),
^ ~ ~ ~ ~
UIApplicationOpenSettingsURLString
UIKit.UIAp plication:64 :22 : remarque : "openSettingsURLString" a été introduit dans Swift 4.2
classe publique let openSettingsURLString : chaîne
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift:55 :45: erreur : les étiquettes d'argument '(rawValue :)' ne correspondent à aucune surcharge disponible
laissez optionsKeyDictionary = [UIApplication.OpenExternalURLOptionsKey(rawValue : "universalLinksOnly") : NSNumber(valeur : vrai)]
^ ~ ~ ~ ~ ~ ~ ~~
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager. swift:55 :45 : remarque : des surcharges pour 'UIApplication.OpenExternalURLOptionsKey' existent avec ces listes de paramètres partiellement correspondantes : (codeur : NSCoder), (stringLiteral : StaticString), (format : NSString, CVarArg...), (chaîne : NSString ), (chaîne utf8 : UnsafePointer), (chaîne UTF8 : pointeur non sécurisé), (chaîne : chaîne), (contentsOfFile : chaîne), (contentsOf : URL), (contentsOfURL : URL), (cString : UnsafePointer), (CString : UnsafePointer)
laissez optionsKeyDictionary = [UIApplication.OpenExternalURLOptionsKey(rawValue : "universalLinksOnly") : NSNumber(valeur : vrai)]
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager.swift:59:91 : erreur : 'openSettingsURLString' a été renommé en ' UIApplicationOpenSettingsURLString'
let success = UIApplication.shared.openURL(URL.init(chaîne : UIApplication.openSettingsURLString) !)
^ ~ ~ ~ ~
UIApplicationOpenSettingsURLString
UIKit.UIApplication:64:22 : remarque : 'openSettingsURLString' a été introduit dans Swift 4.2
classe publique let openSettingsURLString : chaîne
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-2.1.2/ios/Classes/PermissionManager.swift:99:54 : erreur : paramètre tuple de fermeture '(clé : chaîne , valeur : Any)' ne prend pas en charge la déstructuration
return Dictionary(uniqueKeysWithValues : input.map { clé, valeur dans (UIApplication.OpenExternalURLOptionsKey(rawValue : clé), valeur)})
^ ~ ~~(arg) -> <#Result#> let (clé, valeur) = arg ;























~ ~ ~ ~ ^ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:111:45 : avertissement : comparaison entre pointeur et entier ('NSInteger ' (aka 'long') et 'vide *')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: avertissement : ' openURL:options :completionHandler:' est uniquement disponible sur iOS 10.0 ou plus récent [-Wunguarded-availability][URL ouverte de l'application : URL^ ~ ~Dans le module 'UIKit' importé de /Volumes/PROJECTS/nomadradar-app/repo/nomadradar/ios/Pods/Target Support Files/url_launcher/url_launcher-prefix.

*)options CompletionHandler:(void (^ __nullable)(BOOL success))completion 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 : remarque : enclose ' openURL:options :completionHandler : ' dans une vérification @available pour faire taire cet avertissement[URL ouverte de l'application : URL^ ~ ~/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:3 : avertissement : 'SFSafariViewController' n'est disponible que sur iOS 9.0 ou plus récent [-Wunguarded-availability]SFSafariViewController *safari = [[SFSafariViewController alloc] in itWithURL:url ] ;^ ~ ~ ~ ~~Dans le module 'SafariServices' importé 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 : remarque : ' SFSafariViewController' a été explicitement marqué comme partiel ici@interface SFSafariViewController : UIViewController^/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:3 : remarque : incluez 'SFSafariViewController' dans un @available cochez pour faire taire cet avertissementSFSafariViewController *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 : avertissement : 'SFSafariViewController' n'est disponible que sur iOS 9.0 ou plus récent [-Wunguarded-availability]SFSafariViewController *safari = [[SFSafariViewController alloc] in itWithURL:url ] ;^ ~ ~ ~ ~~~~
Dans le module 'SafariServices' importé 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 : remarque : ' SFSafariViewController' a été explicitement marqué comme partiel ici
@interface SFSafariViewController : UIViewController
^
/Users/dirkeisold/programming/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-3.0.3/ios/Classes/UrlLauncherPlugin.m:140:38 : remarque : incluez 'SFSafariViewController' dans un @available cochez pour faire taire cet avertissement
SFSafariViewController *safari = [[SFSafariViewController alloc] in itWithURL:url ] ;

Comportement prévisible

Aucune erreur.

Étapes de reproduction

Configuration

Version : ^2.1.1

[✓] Flutter (Channel stable, v1.0.0, sur Mac OS X 10.13.6 17G4015, locale de-DE)
• Flutter version 1.0.0 dans /Users/dirkeisold/programming/flutter
• Framework revision 5391447fae (il y a 7 semaines), 2018-11-29 19:41:26 -0800
• Révision du moteur 7375a0f414
• Dart version 2.1.0 (version 2.1.0-dev.9.4 f9ebf21297)

[✓] Chaîne d'outils Android - développer pour les appareils Android (Android SDK 28.0.3)
• SDK Android dans /Users/dirkeisold/programming/android-sdk-macosx
• Emplacement Android NDK non configuré (facultatif ; utile pour la prise en charge du profilage natif)
• Plate-forme android-28, build-tools 28.0.3
• ANDROID_HOME = /Users/dirkeisold/programming/android-sdk-macosx
• Binaire Java à : /Applications/Android Studio 3.2.app/Contents/jre/jdk/Contents/Home/bin/java
• Environnement d'exécution OpenJDK version Java (version 1.8.0_152-release-1136-b06)
• Toutes les licences Android acceptées.

[✓] Chaîne d'outils iOS - développer pour les appareils iOS (Xcode 10.1)
• Xcode dans /Applications/Xcode.app/Contents/Developer
• Xcode 10.1, version de compilation 10B61
• ios-deploy 2.0.0
• CocoaPod version 1.5.3

Commentaire le plus utile

@deisold , @tommaso1 , la raison pour laquelle vous rencontrez ce problème est probablement parce que vous compilez toujours avec une ancienne version de SWIFT (je crois que la valeur par défaut actuelle est 4.1). Vous pouvez simplement changer cela en mettant à jour votre Podfile en suivant les instructions suivantes.

Dans votre Podfile, assurez-vous d'ajouter la ligne use_frameworks ! (le mieux est d'ajouter cette ligne directement sous le Runner cible comme ceci :

target 'Runner' do
  use_frameworks!

Toujours dans votre Podfile, assurez-vous d'ajouter la ligne config.build_settings['SWIFT_VERSION'] = '4.2' au bloc post_installer. Après avoir ajouté cette ligne, le bloc post_installer devrait ressembler à ceci :

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

Tous les 3 commentaires

+1

essayez de nettoyer le flottement flutter clean

@deisold , @tommaso1 , la raison pour laquelle vous rencontrez ce problème est probablement parce que vous compilez toujours avec une ancienne version de SWIFT (je crois que la valeur par défaut actuelle est 4.1). Vous pouvez simplement changer cela en mettant à jour votre Podfile en suivant les instructions suivantes.

Dans votre Podfile, assurez-vous d'ajouter la ligne use_frameworks ! (le mieux est d'ajouter cette ligne directement sous le Runner cible comme ceci :

target 'Runner' do
  use_frameworks!

Toujours dans votre Podfile, assurez-vous d'ajouter la ligne config.build_settings['SWIFT_VERSION'] = '4.2' au bloc post_installer. Après avoir ajouté cette ligne, le bloc post_installer devrait ressembler à ceci :

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
Cette page vous a été utile?
0 / 5 - 0 notes