Flutter-geolocator: Échec de la construction, pour iOS: fichier 'geolocator / geolocator-Swift.h' introuvable

Créé le 26 juin 2018  ·  12Commentaires  ·  Source: Baseflow/flutter-geolocator

exécution de flutter build iOS --release:

=== BUILD TARGET firebase_messaging OF PROJECT Pods AVEC CONFIGURATION Release ===
/ Users / * * / development / flutter / .pub-cache / hosts / pub.dartlang.org / geolocator-0.0.1 / ios / Classes / GeolocatorPlugin.m: 2: 9: erreur fatale: 'geolocator / geolocator-Swift .h 'fichier introuvable

importer

Ma sortie de médecin:
Résumé du médecin (pour voir tous les détails, lancez Flutter doctor -v):
[✓] Flutter (Channel dev, v0.5.5, sur Mac OS X 10.13.3 17D102, locale pt-PT)
[✗] Chaîne d'outils Android - développement pour les appareils Android
✗ Impossible de localiser le SDK Android.
Installez Android Studio à partir de: https://developer.android.com/studio/index.html
Lors du premier lancement, il vous aidera à installer les composants du SDK Android.
(ou visitez https://flutter.io/setup/#android-setup pour des instructions détaillées).
Si le SDK Android a été installé dans un emplacement personnalisé, définissez $ ANDROID_HOME sur cet emplacement.
[✓] Chaîne d'outils iOS - développement pour les appareils iOS (Xcode 9.2)
[✗] Android Studio (non installé)
[!] VS Code (version 1.14.2)
[!] Des appareils connectés
! Aucun appareil disponible

bug

Commentaire le plus utile

@mvanbeusekom vient d'

De plus, je viens de télécharger une version sur l'Appstore (toujours en version bêta), mais tout s'est bien passé.
image

AFAIK, du moins pour moi, problème résolu.

Tous les 12 commentaires

@ manuelgomes2 merci beaucoup d'avoir

Nous avons analysé le problème et avons pu le reproduire et travaillons sur un correctif (voir PR # 18)

@ manuelgomes2 après avoir contacté Google, il semble qu'il y ait un problème pour le moment avec les applications Flutter générées à l'aide d'Objective-C (qui est la valeur par défaut) consommant des plugins Swift. Consultez également les commentaires que j'ai reçus sur ma question Stack Overflow .

La solution de contournement pour l'instant est de générer votre application pour utiliser Swift sur iOS (par exemple en utilisant la commande CLI Flutter suivante flutter create -i swift my_app , notez le commutateur rapide -i ). Je dois toutefois vous avertir que cela générera une surcharge importante sur la taille de l'application.

En attendant, nous travaillerons à la traduction du plugin de Swift en Objective-C afin que la solution de contournement ci-dessus ne soit pas nécessaire et n'affecte pas non plus la taille de l'application de manière négative.

Merci pour votre temps, mais le "flutter create -i swift my_app" n'est pas la solution - j'ai créé mon application ios en utilisant "-i swift" depuis le début, mais le problème persiste ...

Une chose étrange, lorsque j'ouvre le GeneratedPluginRegistrant.m dans XCode, votre plugin apparaît dans une couleur différente (violette) de tous les autres plugins, et est le seul à ne pas commencer par "FLT" dans le nom - désolé pour mon ignorance, mais savez-vous pourquoi et si cela est lié d'une manière ou d'une autre? Cela semble-t-il la même chose pour vous si vous ouvrez ce fichier dans XCode?

Merci.

(note, dans la capture d'écran):
image

@mvanbeusekom une autre mise à jour, j'ai finalement réussi à construire l'application: la ligne suivante a été commentée sur mon podfile:
use_frameworks!
Décommentez la ligne et l'application se compile à l'aide de votre plugin. Maintenant, l'application plante au démarrage, mais je vais examiner cela (probablement une configuration est nécessaire pour que cette application utilise les services de localisation sur iOS)
J'espère que cela t'aides.

@mvanbeusekom vient d'

De plus, je viens de télécharger une version sur l'Appstore (toujours en version bêta), mais tout s'est bien passé.
image

AFAIK, du moins pour moi, problème résolu.

@ manuelgomes2 c'est une excellente nouvelle, merci beaucoup pour vos commentaires.

Pour être sûr, la raison probable pour laquelle votre application plante / plante au démarrage est liée au fait que l'autorisation d'utilisation des services basés sur l'emplacement est manquante dans le fichier Info.plist (la documentation sur les autorisations à ajouter est dans le fichier README.md ).

Après quelques recherches sur Google, j'ai trouvé le fil suivant qui pourrait être utile (je l'ajouterai également à notre README): https://github.com/flutter/flutter/issues/16049

Salut!

Voyant ce problème, je vois qu'au début, @ manuelgomes2 utilisait firebase_messaging et geolocator , et il avait des problèmes.

Plus tard, il a créé une nouvelle application apparemment sans firebase_messaging , et a pu la construire.

Manuel, as-tu pu les mélanger tous les deux dans le même projet?

C'est actuellement mon problème . Apparemment, lors de l'utilisation des plugins Firebase, on ne peut pas les combiner avec un autre plugin qui utilise du code Swift, car FB nécessite use_frameworks! être sorti, et les plugins de code Swift nécessitent use_frameworks! en être! : - /

(Je m'attends en fait à ce que ce soit faux)

@ffeu sur la question SO liée que vous mentionnez, vous rencontrez l'erreur suivante:

The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor.

Pour moi, il semble que vous deviez spécifier la version Swift dans votre Podfile en ajoutant la ligne suivante:

config.build_settings['SWIFT_VERSION'] = '4.1'

Il devrait faire partie du bloc post_install , comme 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.1'
    end
  end
end

Je ne suis pas sûr que cela fonctionnera car je ne l'ai pas testé, mais cela vaut la peine d'essayer, je dirais. S'il vous plaît laissez-moi savoir si cela vous aide.

PS J'ai également posté ce qui précède comme réponse sur Stack Overflow.

Salut Maurits, ça a marché !! \ o /

Je l'ai testé précédemment, mais uniquement avec '3.2'! Cela fonctionnait à la fois avec 4.0 et 4.1.

Merci beaucoup!

Je l'ai testé en utilisant tous les 3.2, 4.0, 4.1 et 4.2 mais le XCode montre toujours l'erreur
'geolocator/geolocator-Swift.h' file not found Ceci est le code dans mon fichier

#import "GeolocatorPlugin.h"
#import <geolocator/geolocator-Swift.h> // this line causes error

<strong i="8">@implementation</strong> GeolocatorPlugin
+ (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
  [SwiftGeolocatorPlugin registerWithRegistrar:registrar];
}
<strong i="9">@end</strong>

Quelqu'un peut-il me guider?

Je pense que c'est votre version Xcode.

Vérifiez cette question SO.

Cette page vous a été utile?
0 / 5 - 0 notes