Подтвердить что ты не робот

Google Maps не работает на симуляторе iPhone

Я шаг за шагом реализовал "Получение SDK Google Maps для iOS"

Наконец, симулятор работает нормально, но ошибок не обнаружено, но карта не имеет никаких данных, кроме маркера.

Как показано на картинке:

Screnshot of simulator

Также на выходе внизу отображается следующее сообщение:

2012-12-23 01: 06: 59.869 GogleMap [3680: c07] GMSZoomTableQuadTree не имеет таблицы масштабирования корня для > типа плитки (mapType: 10) 2012-12-23 01: 07: 00.042 GogleMap [3680: 1b03] SDK для Google Maps для версии iOS: 1.0.1.1154 2012-12-23 01: 07: 00.375 GogleMap [3680: c07] Ошибка ClientParametersRequest, 3 попытки > остальные. Error Domain = DASHConnectionError Code = 100 "Операция не может быть завершена. (DASHConnectionError error 100.)"

Помогите пожалуйста и заблаговременно.

4b9b3361

Ответ 1

@user1924208 У меня такая же проблема. Я неустанно искал в интернете ответ, и, к сожалению, мне кажется, что нам не повезло. Консоль API Google, вероятно, покажет вам ключ API для Google Maps v.3, который НЕ является ключом API Google Maps iOS. Поэтому, когда вы используете это как ваш ключ API, запрос проверки всегда будет терпеть неудачу.

Кажется, что они не выдали много ключей API для версии iOS по любой причине. Как бы это ни было разочаровывает, вам просто нужно подождать, пока вы не получите от них электронное письмо (не совсем уверен, когда это будет...).

Это можно подтвердить, потому что замена текущего ключа API любой случайной строкой даст те же результаты. Кстати, это также дает те же результаты как на симуляторе, так и на реальном устройстве, которое я тестировал.

Обновление

Я только что получил электронное письмо от Google Maps, что теперь доступен мой ключ API. Я отключил MKMapKit с помощью GMSServices, и все работает. Похоже, они немного более удобны в выпуске ключей API теперь, надеюсь, вы скоро получите свое.

Ответ 2

Решено: я думаю, что мы все пропустили небольшой, но очень важный шаг в процессе.

Для начала включите службу Google Maps SDK для iOS в консоли API Google вместе с другими API Google.

enter image description here

Как только вы включите GoogleMap SDK для iOS в консоли API Google, ваше приложение будет корректно загружать плитки при следующем запуске. Удачи!

Ответ 3

Наверху, убедитесь, что вы также включили "Google Maps SDK для iOS" на вкладке "Службы".

Я получал подобную ошибку, пока не понял, что я создал только ключ API, но забыл включить эту услугу. Решил мою проблему.

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.)"

Ответ 4

У меня была аналогичная проблема, но я был уверен, что ключ API был хорош, потому что пример проекта из пакета SDK работал с этой парой идентификаторов ключей - пакетов, которые я использовал в реальном приложении. Последняя версия версии sdk (1.2) фактически выводит предупреждение, если ваш ключ API не является действительным. Причина, по которой он не отображал карту, состоял в том, что я не заполнил номер сборки на вкладке итогового резюме параметров проекта. Оказывается, вам абсолютно необходимо установить CFBundleVersion в вашем Info.plist, чтобы карта google работала, в противном случае карта просто остается пустой, без ошибок или предупреждений, отображаемых или даже сделанных веб-запросов.

Ответ 5

У меня была такая же проблема. Я думаю, что проблема в том, что мой "идентификатор пакета" моего проекта отличается от одного из идентификаторов пакета в моей консоли API Google.

Итак, я добавляю еще один пакет indentifer для своей консоли API Google: выберите свой проект из Навигатора проектов и выберите целевую программу. На вкладке Сводка помните свою строку в Идентификатор пакета.

Перейдите на страницу Консоль API Google API, выберите панель "Доступ к API" в консоли, найдите раздел "Ключ для приложений iOS", выберите "Редактировать разрешенные приложения для iOS" и добавьте свой идентификатор пакета, который вы помните выше. Перезапустите свой проект и сделайте это!

Ответ 6

У меня была такая же проблема, затем я перешел на консоль Google и нажал кнопку " Создать новый ключ", а новый ключ работает!

Ответ 7

Следуя этому под другим углом:

В более поздних версиях рамок Google Maps появилась ошибка, которая препятствовала тому, чтобы карты могли быть созданы/созданы/добавлены в супервизор, если приложение было в фоновом режиме.

Когда вы это сделаете, итоговая карта будет отображаться как полностью пустой, кроме логотипа Google в левом нижнем углу. Причиной этого является то, что рендеринг OpenGL не допускается ОС в фоновом режиме; им просто нужно было перезапустить средство визуализации, как только оно было наложено.

Google наконец установил это (примерно через год), поэтому обновите его до самого последнего и самого лучшего.

Если вы используете Google для бизнеса:

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

Репродукция этой проблемы здесь для более старых версий.

Визуальное воспроизведение:

Ошибка OpenGL

Ответ 8

Похоже, вы не указали действительный ключ API. У вас есть один?

Ответ 9

Эта ошибка указывает на недопустимый ключ, используемый для инициализации Карт Google:

[GMSServices provideAPIKey:@"YOUR_API_KEY"];

Ключ выдается Google специально для SDK iOS (видимо, только для нескольких выбранных); ключи для Google Maps SDK v2 и v3 не будут работать на Apple.

Способ подтверждения того, что ошибка действительно вызвана недействительным ключом, - это отображение кнопки. Pushpin не требует действительного ключа, поэтому он будет виден на пустом объекте просмотра карты. Кодирование примера со страницы "Начало работы" https://developers.google.com/maps/documentation/ios/start#add_a_map должно привести к тому, что приложение отобразит пустой вид карты (с желтоватым фоном и кнопкой в ​​центре).

Лучший способ гарантировать, что штырь виден, - использовать точно такие же координаты как для камеры, так и для маркера, см. фрагмент:

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];

Ответ 10

Еще один хедз-ап! Убедитесь, что идентификатор пакета приложений соответствует идентификатору пакета, определенному в поле "Приложения iOS" в консоли API Google.

Ответ 11

Убедитесь, что вы не изменили свой

[ идентификатор пакета]

для приложения. Он должен совпадать с тем, который вы использовали при создании ключей API.

Ответ 12

Получается та же проблема. Конечно, все в порядке. И дело в том, что вашему ключу API требуется некоторое время для работы (возможно, информация об этом распространяется через серверы google, что означает, что ваш ближайший сервер еще не знает о новом ключе API).

Итак, через 5 минут после прекращения создания ключа API, и у меня есть полностью работающий ключ API. (заметьте, я не получал никаких сообщений электронной почты из Google).

Ответ 13

Это помогло мне: (API-интерфейс Misspelt, потому что XCode первоначально возвратил ошибку, если API не был окружен {} IOS - ObjC Google Maps Api Key

Ответ 14

Я решил эту проблему следующим образом.

  • Перейти к консоли API Карт Google (Старый). Включенной услугой был SDK Google Maps для iOS и API-интерфейсов Google Street View.
  • У меня отключен API-интерфейс Google Street View.
  • И тогда ошибка больше не выводится.

Ответ 15

для меня это было связано с изменением идентификатора моего пакета приложений. После ввода нового ключа API для нового идентификатора пакета он снова начнет работать.

Ответ 16

Прежде всего, сделайте свои ключи правильными. Затем проверьте, включен ли SDK Google Maps для iOS. Вместо запуска приложения на устройстве, а не в симуляторе.

Ответ 17

Важно. Если вы хотите попрактиковаться на картах Google с устройств iOS, просто загрузите GoogleMaps.framework.

Бессознательно я загрузил GoogleMapsM4B.framework и столкнулся с такими проблемами, как "ваш ключ может быть недопустим для вашего идентификатора пакета: com.company.example '

Если вы хотите использовать GoogleMapsM4B.framework в своем проекте,  1. Вы должны запросить поддержку на портале поддержки предприятия (веб-сайт Google)  2.Выполните команду Google Maps Mobile SDK for Work не Google Maps SDK для iOS на веб-сайте консоли Google.

Если вы хотите использовать GoogleMaps.framework не GoogleMapsM4B (Карты для бизнеса), вам не нужно запрашивать центр поддержки, вам просто нужно включить SDK Google Maps для iOS на веб-сайте консоли Google.

Вы можете найти ключевые различия между SDK Google Maps для iOS и Google Maps Mobile SDK для работы (M4B).

и импортируйте GoogleMaps/GoogleMaps.h в свой файл и передайте ключ api ниже:

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

(или)

Если у вас есть действующая лицензия, загрузите GoogleMapsM4B.framework и импортируйте файл GoogleMapsM4B/GoogleMaps.h в свой файл и передайте api тому же методу [GMSServices provideAPIKey:@"Your API Key"] но я думаю, вы можете получить этот ключ только после покупки лицензии.

Итак, главная проблема, с которой я столкнулся, - это... вместо загрузки GoogleMaps.framework. Я загрузил GoogleMapsM4B.framework и добавил в свой проект. Каждый раз, когда я запускаю свой проект, это приводило к ошибке: "Ваш ключ может быть недействительным для вашего идентификатора пакета: com.example.sampleapp"

Теперь мой проект работает правильно.

Ответ 18

попробуйте не сохранять ключ API на любых константах. Непосредственно передайте значение. Если он не работает, попробуйте восстановить API-карту ключей.

MapServices.ProvideAPIKey ("AIzaSyAnxfhuAwEqdVhQpoUkGFZpsBukOSXVFr0");

счастливое кодирование:)

Ответ 19

Теперь Apple удалит карту Google и добавит Apple карту.

Проверьте следующие вещи:

  • Уменьшить масштабирование в режиме просмотра карты.

  • Какая версия iOS используется? если вы использовали iOS 6, карта google не работает. Карта Apple должна работать.

  • Иногда Симулятор не поддерживает некоторых основных функционалов, любезно проверяя функциональность на устройстве.

  • Убедитесь, что делегат и источник данных должны установить.

Спасибо.