Google Maps SDK для iOS вылетает из-за добавления в пользовательскую среду и основное приложение - PullRequest
0 голосов
/ 01 ноября 2019

Я создал специальную платформу Objective-C для своего клиента. Пользовательский фреймворк имеет много функций, одна из которых - карта. Я построил его поверх Google Maps SDK с некоторыми дополнительными действиями на карте. Я добавил эти фреймворки и связку в свой проект пользовательских фреймворков

GoogleMapsCore.framework
GoogleMapsBase.framework
GoogleMaps.framework
GoogleMaps.bundle

Пользовательские фреймворки отлично работают почти для клиентских приложений. До тех пор, пока один клиент не интегрировал мои пользовательские фреймворки, они также включили вышеупомянутые фреймворки Google Map в свой проект длячастное назначение их приложения, которое не связано с моей картой в целях пользовательского фреймворка.

Их приложение может быть успешно построено, но во время выполнения оно падает, за исключением

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[GMSx_GMPCClientVectorTileExtensionsRoot indoorBuildingMetadata]: unrecognized selector sent to class 0x10xxxxxxx'

Наряду с этим яполучает тонну журналов, похожих на

objc[483]: Class GMSBaseClearcutClient is implemented in both /private/var/containers/Bundle/Application/2BA0B2AF-5D3D-4664-BAB4-866D3BC9FFCE/<main_app>.app/Frameworks/<my_custom_framework>.framework/<my_custom_framework_name> (0x10xxxxxx) and /private/var/containers/Bundle/Application/2BA0B2AF-5D3D-4664-BAB4-866D3BC9FFCE/<main_app>.app/<main_app_name> (0x10xxxxxxx). One of the two will be used. Which one is undefined.

Я искал в интернете и обнаружил, что проблема может быть в том, что приложение добавило эти 4 фреймворка Google Map и связало несколько раз, как показано ниже

Карты Google не отображаются - не удалось декодировать плитку

Я полагаю, проблема в том, что приложение само добавило эти рамки Google Map, и мои пользовательские рамки тоже добавили их.

Итакмой вопрос, как мы можем сделать приложение распознает только те карты Google SDK наp каталог проекта, а не те, что в пользовательской структуре. Есть ли способ настроить пользовательский фреймворк, можно абсолютно скрыть его надстройку фреймворка от внешнего приложения

...