web-dev-qa-db-fra.com

Le SDK Google Maps pour iOS nécessite que GoogleMaps.bundle fasse partie de votre cible sous «Copier les ressources du bundle

Lorsque je crée un SDK GoogleMaps pour iOS, ces erreurs se sont produites.

*** Terminating app due to uncaught exception 'GMSException', reason: 'Google Maps SDK for iOS requires GoogleMaps.bundle to be part of your target under 'Copy Bundle Resources''

mais, GoogleMaps.framework est dans le bundle de copie resources.so, je suis confus.Veuillez me dire la cause de ce problème.

63
JohnyDgoode

Les instructions manquent un peu. J'espère que ça aide...

  1. Lancer Xcode (facile)
  2. Faites glisser le groupe GoogleMaps.framework vers le groupe Frameworks de votre projet. Lorsque vous y êtes invité, sélectionnez Copier les éléments dans le dossier du groupe de destination.

  3. Cliquez avec le bouton droit sur GoogleMaps.framework dans votre projet et sélectionnez Afficher dans le Finder. Ce qu'il ne dit pas, c'est ... Ensuite, allez dans le dossier enfant appelé Resources

  4. Faites glisser GoogleMaps.bundle du dossier Ressources vers votre projet. Nous vous suggérons de le mettre dans le groupe Frameworks. Lorsque vous y êtes invité, assurez-vous que l'option Copier les éléments dans le dossier du groupe de destination n'est pas sélectionnée.

177
sberley

Pour les personnes qui recherchent SO en 2017, le moyen le plus simple est en effet d'essayer d'installer et de mettre à jour votre pod par bien sûr pod install et pod update. Enfin, nettoyez le projet et la génération par ces deux commandes:

  1. Construction propre: Command + alt option + Shift + K
  2. Projet propre: Command + Shift + K

Alors voila! Le crash ne se reproduira plus.

90
Glenn

Pour ceux d'entre vous qui ont essayé cela en 2017 avec Xcode 9 (première version) et le nouveau système de construction, ce qui suit a résolu ce problème pour moi.

Remarque: Le problème fondamental semble être que le nouveau système de construction ne nettoie PAS correctement, vous devez donc revenir à l'ancien système. Depuis le 25/09/17, le sélecteur de place Google appelle l'interface utilisateur du thread principal et génère des erreurs dans Xcode.

-Passez à l'ancien système de construction

-Cliquez sur votre fichier de projet "My App Name"

-Sous "TARGETS", cliquez sur le nom de votre application (pas sur les tests ou les UITests!)

-les phases de construction

- [CP] Copy Pods Resources

-Vous devriez voir $ {PODS_ROOT}/GoogleSomething, sélectionnez-les et appuyez sur -

-Fermez Xcode, exécutez l'installation du pod.

-Ouvrez Xcode, Command-Shift-K (nettoyez et assurez-vous que vous êtes sur l'ancien système de construction!)

-Build/Run, devrait fonctionner maintenant

7
user8671173

Si vous rencontrez ce problème dans une version plus récente de ce framework et utilisez le déploiement CocoaPods, vérifiez que la section " Copy Pods Resources " de " Phases de construction ":

enter image description here

Apparemment, cette section disparue est une chose et supprimer votre répertoire Pods et relancer " pod install " n'est pas suffisant pour le corriger. Au lieu de cela, vous devrez saisir cet outil pratique:

https://github.com/CocoaPods/cocoapods-deintegrate

Exécutez cette chose, puis réexécutez l'installation du pod et vos " Copier les ressources des pods "devrait être de retour et vous n'obtiendrez pas cette exception lorsque vous instanciez votre carte.

6
RedBlueThing

l'exécution de "pod install" a résolu ce problème pour moi.

4
Abdul Hannan

Si vous avez installé la carte via CocoaPods Essayez les étapes suivantes.

  1. Allez dans CIBLES> Phases de construction
  2. Désactivez "Exécuter le script uniquement lors de l'installation" enter image description here
3
Sreeraj VR

J'étais confronté au même problème, procédez comme suit:

1. Go to derived folder and delete the project folder
2. Clean build and run

Correction du problème

2
sahiljain

Pour moi, j'ai le même problème dans l'installation manuelle.

1. cliquez avec le bouton droit sur GoogleMaps.framework dans votre projet et sélectionnez Afficher dans le Finder.

  1. double-cliquez ou ouvrez ce cadre GoogleMaps.framework. nous pouvons voir le dossier "Ressources". (J'ai ajouté la capture d'écran de l'image pour laquelle GoogleMaps.bundle est disponible)
  2. cliquez sur le dossier Ressources, nous pouvons trouver le GoogleMaps.bundle

enter image description here

  1. glissez-déposez simplement le GoogleMaps.bundle dans votre projet. assurez-vous que l'option Copier les éléments dans le dossier du groupe de destination n'est pas sélectionnée. enter image description here

Remarque: assurez-vous que le dossier du groupe de destination "Copier les éléments si nécessaire" n'est pas sélectionné. voir aussi la capture d'écran.

maintenant nettoyer la commande + Maj + K ou Xcode -> Produit -> Nettoyer

cela peut aider quelqu'un.

1
Murugan M

Une fois que j'ai mis à jour vers Xcode 9 Swift 3.2, je n'arrêtais pas de faire planter AppDelegate sur cette ligne:

GMSServices.openSourceLicenseInfo()

J'ai continué à utiliser la réponse de Glenn pour nettoyer le projet qui a vraiment fonctionné mais finalement le crash a continué de se produire.

Pour le résoudre, j'ai dû suivre les instructions de Installation de l'API Google Maps

Suivre:

Étape 2: installer le SDK et Installer manuellement

C'est très facile à faire, mais une chose m'a un peu dérouté au début, donc je l'ajoute pour plus de clarté pour la personne suivante:

Une fois que vous avez lu les instructions du manuel et au numéro 4, il est dit:

4. Drag the following bundles into your project (when prompted, select Copy items if needed): 

enter image description here

La chose est à l'intérieur du fichier Zip que vous téléchargez, une fois que vous le décompressez, il n'y aura que 2 frameworks à l'intérieur:

GoogleMaps.framework
GoogleMapsCore.framework

Il n'y aura pas de GoogleMapsBase.framework. Je suppose qu'ils l'ont regroupé dans le GoogleMaps.framework?

Une fois que vous arrivez au numéro 8: Open the Build Phases tab, and within Link Binary with Libraries, add the following frameworks:. Il répertorie un certain nombre de cadres que vous devez importer.

enter image description here

Le problème est que les 3 premiers répertoriés qui, selon lui, ont été ajoutés ont déjà été ajoutés (en fait, deux d'entre eux ont été ajoutés -GoogleMaps.framework et GoogleMapsCore.framework) lorsque vous avez décompressé ce fichier Zip et que vous les avez glissés dans votre projet.

J'ai continué à taper les noms et rien ne s'affichait.

enter image description here

J'ai continué à supprimer tous les frameworks Google, en commençant depuis le début, et en réessayant jusqu'à ce que je réalise qu'ils existaient déjà. Tapez simplement les noms de tout, de Accelerate.framework - UIKit.framework et vous devriez être bon.

1
Lance Samaria

Arrêt de l'application en raison d'une exception non interceptée "GMSException", raison: "Le SDK Google Maps pour iOS nécessite que GoogleMaps.bundle fasse partie de votre cible sous" Copier les ressources du bundle "

  1. trouver GoogleMaps.bundle dans GoogleMap.frameword/Resources vous verrez GoogleMap.bundle
  2. Traîne GoogleMaps.bundle en Base/Framework avec GoogleMapsBase.framework

j'espère que cela peut aider. Merci

0
Chea Sambath