web-dev-qa-db-fra.com

Google Maps ne fonctionne pas sur le simulateur iPhone

J'ai implémenté "Obtention du SDK Google Maps pour iOS" étape par étape.

enfin, le simulateur fonctionne correctement. Aucune erreur trouvée, mais la carte n’a pas de détails, sauf le marqueur.

Comme le montre l'image: 

Screnshot of simulator

Aussi la sortie en bas a ce message:

2012-12-23 01: 06: 59.869 GogleMap [3680: c07] GMSZoomTableQuadTree manque de table de zoom racine pour> le type de mosaïque (mapType: 10) 2012-12-23 01: 07: 00.042 GogleMap [3680: 1b03] Kit de développement logiciel (SDK) Google Maps pour iOS version: 1.0.1.1154 2012-12-23 01: 07: 00.375 GogleMap [3680: c07] ClientParametersRequest a échoué, il reste 3 tentatives>. Domaine d'erreur = Code DASHConnectionError = 100 "L'opération n'a pas pu aboutir. (Erreur DASHConnectionError 100.)"

Aide s'il vous plaît et merci d'avance.

24
Aj-Ksa

@ user1924208 J'ai le même problème. J'ai cherché la réponse sans relâche sur Internet et malheureusement, je pense que nous n'avons pas de chance. La console Google API vous montrera probablement la clé API de Google Maps v.3, qui n'est PAS la clé API Google Maps iOS. Par conséquent, lorsque vous utilisez cette clé API, la demande de validation échouera toujours.

On dirait qu'ils n'ont pas émis beaucoup de clés d'API pour la version iOS pour une raison quelconque. Aussi frustrant que cela puisse être, vous devrez simplement attendre de recevoir un email de leur part (vous ne savez pas vraiment quand ce sera ...).

Vous pouvez le confirmer car le remplacement de la clé d'API actuelle par toute chaîne aléatoire produira les mêmes résultats. À propos, cela produit également les mêmes résultats, à la fois sur simulateur et sur un appareil réel, que j'ai testés.

Mettre à jour

Je viens de recevoir un e-mail de Google Maps indiquant que ma clé API est maintenant disponible. J'ai remplacé MKMapKit avec GMSServices et tout fonctionne bien. Il semble qu'ils soient un peu plus à l'aise avec la libération des clés d'API maintenant. J'espère que vous obtiendrez les vôtres très bientôt. 

8
manderson

Résolu: Je pense que nous avons tous ignoré une étape petite mais très importante du processus.

Pour commencer, activez le service SDK Google Maps pour iOS dans la console des API Google, aux côtés des autres API Google.

enter image description here

Une fois que vous avez activé GoogleMap SDK pour iOS dans Console des API Google , votre application chargera correctement les vignettes lors de la prochaine exécution. Bonne chance!

51
iksnae

Attention, assurez-vous d'avoir également activé "Google Maps SDK pour iOS" dans l'onglet Services.

J'avais une erreur similaire jusqu'à ce que je réalise que je n'avais généré qu'une clé API, mais j'ai oublié d'activer le service. Résolu mon problème.

SDKDemos[160:907] ClientParametersRequest failed, 0 attempts remaining (0 vs 5). 
Error Domain=com.google.Maps.GMSDASHConnection Code=100 
"The operation couldn’t be completed. (com.google.Maps.GMSDASHConnection error 100.)"
5
mars271

J'avais un problème similaire, mais j'étais sûr que la clé d'API était bonne parce que l'exemple de projet du package SDK fonctionnait avec cette paire clé-ID de lot que j'avais utilisée dans l'application réelle. La dernière version (1.2) du sdk déconnecte un avertissement si votre clé d'API ne semble pas être valide .. La raison pour laquelle la carte n'a pas été affichée est que je n'ai pas renseigné de numéro de construction dans l'onglet de résumé de la cible. des paramètres du projet. Il s'avère que vous devez absolument avoir CFBundleVersion défini dans votre Info.plist pour que la carte Google fonctionne, sinon la carte reste vide, sans erreur ni avertissement ni même que les requêtes Web ne sont effectuées.

3
borisgolovnev

J'ai eu le même problème. Je pense que le problème est que mon "identifiant de paquet" de mon projet est différent de l'un des identifiants de paquet de ma console API Google

J'ajoute donc un identifiant de lot supplémentaire à ma console API Google: sélectionnez votre projet lui-même dans le navigateur de projet, puis choisissez la cible de votre application. Dans l'onglet Résumé , rappelez-vous votre chaîne dans Bundle Identifier

Accédez à la page Console Google APIs, sélectionnez le volet Accès aux API dans la console, localisez la section Clé pour les applications iOS, sélectionnez Modifier les applications iOS autorisées ... et ajoutez votre identifiant de groupe que vous vous souvenez plus haut. Relancez votre projet et c'est fait!

2
Dung Nguyen

Important: Si vous souhaitez vous exercer sur Google Maps à partir d'appareils iOS, téléchargez simplement le GoogleMaps.framework.

Sans le savoir, j'ai téléchargé GoogleMapsM4B.framework et j'ai rencontré des problèmes tels que "votre clé est peut-être invalide pour votre identifiant de paquet: com.company.example".

Si vous voulez utiliser GoogleMapsM4B.framework dans votre projet, alors 1.Vous devriez demander une assistance sur le portail de l'assistance aux entreprises (site Web de Google) 2.Vous devez activer SDK Google Maps Mobile pour le travail et non SDK Google Maps pour iOS sur le site Web de la console de Google. 

Si vous souhaitez utiliser GoogleMaps.framework et non GoogleMapsM4B (Maps for Business), vous n'avez pas besoin de demander l'aide du centre de support, il vous suffit d'activer le SDK Google Maps pour iOS sur le site Web de la console de Google.

Vous pouvez trouver les principales différences entre le SDK Google Maps pour iOS et le SDK Google Maps Mobile pour Work (M4B).

importez GoogleMaps/GoogleMaps.h dans votre fichier et transmettez votre clé API à la méthode ci-dessous:

[GMSServices provideAPIKey:@“Your API Key“];

(ou)

Si vous avez une licence valide, téléchargez GoogleMapsM4B.framework et importez GoogleMapsM4B/GoogleMaps.h dans votre fichier et transmettez-le à la même méthode [GMSServices provideAPIKey:@“Your API Key“] Mais je suppose que vous ne pourrez obtenir cette clé qu’après l’achat de la licence.

Donc, le problème principal que j'ai rencontré est ... au lieu de télécharger GoogleMaps.framework, j'ai téléchargé GoogleMapsM4B.framework et ajouté à mon projet. Chaque fois que j'exécutais mon projet, une erreur s'affichait: "Votre clé peut ne pas être valide pour votre ID de bundle: com.example.sampleapp" 

Maintenant, mon projet fonctionne correctement.

1
SivaCherukuri

J'avais le même problème, puis je suis allé à la console google et cliqué sur " Générer une nouvelle clé " et la nouvelle clé fonctionnait!

1
Felipe Braz

Suivi sur ce sous un angle différent: 

Il y avait un bogue dans les versions ultérieures de Google Maps qui empêchait l'instanciation/la création/l'ajout de cartes à Superview si l'application était en arrière-plan.

Lorsque vous avez fait cela, la carte résultante était complètement vide, à l'exception du logo Google en bas à gauche. La raison en est que le rendu OpenGL n'est pas autorisé par le système d'exploitation lorsqu'il est en arrière-plan; ils avaient juste besoin de redémarrer le rendu une fois qu'il était au premier plan.

Finally a réglé ce problème par Google (après environ un an), veuillez donc effectuer la mise à niveau vers la version la plus récente.

Si vous utilisez Google for Business:

pod 'Google-Maps-iOS-SDK-for-Business', '~> 1.11.1'

Un repro de ce problème est ici pour les versions plus anciennes.

Repro visuel:

 OpenGL Bug

1
iwasrobbed

Vous avez le même problème. Et bien sûr, votre clé API a besoin de temps pour fonctionner (peut-être que des informations à ce sujet se propagent sur des serveurs Google, ce qui signifie que votre serveur le plus proche ne peut pas encore connaître la nouvelle clé API ).

Donc, dans environ 5 minutes après que les erreurs de création de clés API se soient arrêtées et que la clé API fonctionne pleinement. (remarque, je n'ai reçu aucun e-mail de google).

0
MANIAK_dobrii

La première chose à faire est que vos clés soient correctes. Ensuite, vérifiez si vous avez activé Google Maps SDK pour iOS. Exécuter l'application sur l'appareil plutôt que sur un simulateur. 

0
Saqib Omer

Assurez-vous de ne pas avoir changé votre 

[ identifiant du paquet

pour l'application. Il devrait correspondre à celui que vous avez utilisé lors de la génération de clés API.

0
MadNik

Cela m'a aidé: (clé API Misspelt car XCode avait initialement renvoyé une erreur, sauf si l'API était entourée par {} IOS - Clé Api Google Maps ObjC

0
jkd359

Attention! Assurez-vous que l'identifiant de l'offre de votre application correspond à l'identifiant de l'offre défini dans le champ "Applications iOS" de la console Google API.

0
PinkFloydRocks

essayez de ne pas enregistrer la clé API sur les constantes. Passez directement la valeur. Si cela ne fonctionne pas, essayez de régénérer l'API Key Map. 

MapServices.ProvideAPIKey ("AIzaSyAnxfhuAwEqdVhQpoUkGFZpsBukOSXVFr0");

bonne codage :) 

0
SARATH SASI

pour moi, c'est parce que l'identifiant de bundle de mon application a été modifié. Après avoir pris la nouvelle clé d’API pour le nouvel identifiant d’ensemble, il recommence à fonctionner.

0
sahan maldeniya

On dirait que vous n'avez pas spécifié de clé API valide. Avez-vous une?

0
Lee Armstrong

Cette erreur indique une clé non valide utilisée pour initialiser Google Maps:

[GMSServices provideAPIKey:@"YOUR_API_KEY"];

La clé est attribuée par Google spécifiquement pour le SDK iOS (apparemment à quelques-uns seulement); les clés pour Google Maps SDK v2 et v3 ne fonctionneraient pas sur Apple.

Un moyen de confirmer que l'erreur est bien causée par une clé non valide consiste à afficher une punaise. La punaise ne nécessite pas de clé valide. Elle sera donc visible sur un objet de vue cartographique vide. Si vous codez l’exemple à partir de la page Mise en route https://developers.google.com/maps/documentation/ios/start#add_a_map , l’application devrait afficher une vue de carte vide (avec un arrière-plan jaunâtre et une centre).

La meilleure façon de garantir la visibilité de l'épingle est d'utiliser exactement les mêmes coordonnées pour la caméra et le marqueur, voir l'extrait de code: 

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:43.65
                                                        longitude:-79.45
                                                             zoom:6];

mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];

mapView_.myLocationEnabled = YES;
self.view = mapView_;

GMSMarkerOptions *markerOptions = [[GMSMarkerOptions alloc] init];
markerOptions.position = CLLocationCoordinate2DMake(43.65, -79.45);
markerOptions.title = @"Greater Toronto Area";

[mapView_ addMarkerWithOptions:markerOptions];
0
Vitali Tchalov

J'ai résolu ce problème comme suit.

  1. Accéder à la console de l'API Google Maps (ancienne) . Le service activé était le SDK Google Maps pour iOS et l'API Image de Google Street View.
  2. J'ai désactivé l'API Google Street View Image.
  3. Et puis, l'erreur n'est plus sortie.
0
Shinurag KR