iOS版Google Maps SDK由于在自定义框架和主应用程序中添加而崩溃

问题描述 投票:0回答:1

我为我的客户制作了一个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.

我在Internet上进行搜索,发现问题可能出在应用程序添加了这4个Google Map框架,并且捆绑了不止一次,如下所示

Google Maps not displaying - Failed to decode tile

我想问题是应用程序本身添加了这些Google Map框架,而我的自定义框架也添加了这些。

所以我的问题是,我们如何才能使应用程序仅识别应用程序项目目录上的那些Google Map SDK,而不是自定义框架上的那些。有没有什么方法可以配置自定义框架,可以从外部应用程序中完全隐藏其加载项框架

我为我的客户制作了一个Objective-C定制框架。自定义框架具有许多功能,其中之一就是地图。我在Google Maps SDK之上构建了它,并在地图上进行了一些其他操作。我添加了...

ios objective-c frameworks google-maps-sdk-ios
1个回答
0
投票

我不知道原因,但在客户端应用程序的-谁在其项目上使用google map- cocoapods创建的Pods- [AppName] .debug.xcconfig文件中,他们会找到OTHER_LDFLAGS,您会看到它链接到您在框架中链接的相同框架。因此,如果他们删除-framework [Duplicated framework],该警告就会消失。

似乎是cocoapods错误

© www.soinside.com 2019 - 2024. All rights reserved.