it-swarm.com.ru

Google Maps SDK для iOS требует, чтобы GoogleMaps.bundle был частью вашей цели в разделе «Копировать ресурсы комплекта»

Когда я создавал GoogleMaps SDK для iOS, произошла эта ошибка.

*** 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''

но, GoogleMaps.framework находится в ресурсах комплекта копий. так, я запутался. пожалуйста, сообщите мне причину этой проблемы.

63
JohnyDgoode

Инструкций вроде не хватает. Надеюсь, это поможет...

  1. Запустить Xcode (легко)
  2. Перетащите пакет GoogleMaps.framework в группу Frameworks вашего проекта. При появлении запроса выберите Скопировать элементы в папку целевой группы.

  3. Щелкните правой кнопкой мыши GoogleMaps.framework в своем проекте и выберите "Показать в Finder". То, что он не говорит, это ... Затем перейдите в дочернюю папку с именем Resources

  4. Перетащите GoogleMaps.bundle из папки "Ресурсы" в свой проект. Мы предлагаем поместить его в группу Frameworks. При появлении запроса убедитесь, что пункт Копировать элементы в папку целевой группы не выбран.

175
sberley

Для пользователей 2017 года, которые ищут на SO, действительно проще всего попробовать установить и обновить ваш модуль, конечно, с помощью pod install и pod update. Затем, наконец, очистите проект и сборку с помощью этих двух команд:

  1. Чистая сборка: Command + alt option + Shift + K
  2. Чистый проект: Command + Shift + K

Тогда вуаля! Сбой не повторится снова.

90
Glenn

Для тех из вас, кто попробовал это в 2017 году с Xcode 9 (первый выпуск) и новой системой сборки, следующее решило это для меня.

Примечание: фундаментальная проблема заключается в том, что новая система сборки НЕ очищается должным образом, поэтому вам нужно переключиться обратно на старую систему. Также с 25.09.17 сборщик мест Google вызывает интерфейс пользователя из основного потока и выдает ошибки в XCode.

-Переключиться к старой системе сборки

- щелкните файл вашего проекта "Имя моего приложения"

-На "TARGETS" нажмите название вашего приложения (не тесты или UITests!)

фазы сборки

- [CP] Копировать стручки ресурсов

-Вы должны увидеть $ {PODS_ROOT}/GoogleSomething, выберите их и нажмите -

-Закройте Xcode, запустите установку pod.

-Откройте Xcode, Command-Shift-K (очистите и убедитесь, что вы в старой системе сборки!)

-Строить/запустить, должен работать сейчас

7
user8671173

Если вы столкнулись с этой проблемой в более поздней версии этой платформы и используете развертывание CocoaPods, проверьте, что в разделе " Copy Pods Resources " " Этапы сборки ":

enter image description here

Очевидно, что этот раздел пропадает, а удаление каталога Pods и повторное выполнение " pod install " недостаточно для его исправления. Вместо этого вам понадобится удобный инструмент this :

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

Запустите эту вещь, а затем снова запустите модуль pod install и ваши " ресурсы для копирования модулей "должен вернуться, и вы не получите это исключение при создании своей карты.

5
RedBlueThing

запуск "pod install" исправил эту проблему для меня.

4
Abdul Hannan

Если вы установили карту через CocoaPods, выполните следующие действия.

  1. Перейти к ЦЕЛЯМ> Фазы сборки
  2. Отключить "Запускать скрипт только при установке" enter image description here
3
Sreeraj VR

Я столкнулся с той же проблемой, сделайте следующее:

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

Исправлена ​​проблема

2
sahiljain

Для меня у меня та же проблема в ручной установке.

1. щелкните правой кнопкой мыши GoogleMaps.framework в своем проекте и выберите "Показать в Finder".

  1. дважды щелкните или откройте эту GoogleMaps.framework. мы можем увидеть папку "Ресурсы". (Я добавил изображение Снимок экрана для где доступен GoogleMaps.bundle)
  2. нажмите на папку "Ресурсы", в которой можно найти GoogleMaps.bundle.

enter image description here

  1. теперь просто перетащите GoogleMaps.bundle в свой проект. Убедитесь, что пункт Копировать в папку целевой группы не выбран. enter image description here

Примечание. Убедитесь, что папка целевой группы "Копировать элементы, если это необходимо" не выбрана. см. снимок экрана тоже.

очистите сейчас Command + Shift + K или Xcode -> Product -> Clean

это может кому-то помочь.

1
Murugan M

После того, как я обновился до Xcode 9 Swift 3.2, у меня продолжал происходить сбой внутри AppDelegate в этой строке:

GMSServices.openSourceLicenseInfo()

Я продолжал использовать ответ Гленна, чтобы очистить проект, который определенно работал, но в конце концов сбой продолжался.

Чтобы решить эту проблему, я должен был следовать инструкциям в Установка Google Maps API

Следить:

Шаг 2. Установите SDK и Установите вручную

Это очень легко сделать, но одна вещь сначала смутила меня, поэтому я добавляю это для ясности для следующего человека:

Как только вы прочитаете инструкцию по эксплуатации и на номер 4 он говорит:

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

enter image description here

Дело в том, что внутри Zip-файла, который вы загружаете, как только вы распакуете его, в нем будет только 2 фреймворка:

GoogleMaps.framework
GoogleMapsCore.framework

Там не будет GoogleMapsBase.framework. Я предполагаю, что они связали это в GoogleMaps.framework?

Как только вы попадаете на номер 8: Open the Build Phases tab, and within Link Binary with Libraries, add the following frameworks:. В нем перечислены несколько структур, которые вы должны импортировать.

enter image description here

Проблема состоит в том, что первые 3 из перечисленных, которые, по его словам, добавляются, уже были добавлены (фактически, два из них были добавлены -GoogleMaps.framework и GoogleMapsCore.framework), когда вы распаковали этот Zip-файл и перетащили его в свой проект.

Я продолжал вводить имена, и ничего не появлялось.

enter image description here

Я продолжал удалять все фреймворки Google, начиная с самого начала и повторяя попытки, пока не понял, что они уже существуют. В основном введите имена всего, начиная с Accelerate.framework - UIKit.framework, и все будет хорошо.

1
Lance Samaria

Завершение работы приложения из-за необусловленного исключения "GMSException", причина: "Google Maps SDK для iOS требует, чтобы файл GoogleMaps.bundle был частью вашей цели в разделе" Копировать ресурсы комплекта "

  1. найти GoogleMaps.bundle в GoogleMap.frameword/Resources вы увидите GoogleMap.bundle
  2. Перетащите GoogleMaps.bundle в Base/Framework с помощью GoogleMapsBase.framework

надеюсь, это поможет. Спасибо

0
Chea Sambath