Google Maps SDK for iOS因添加到自定义框架和主应用程序上而崩溃

Google Maps SDK for iOS因添加到自定义框架和主应用程序上而崩溃,ios,objective-c,frameworks,google-maps-sdk-ios,Ios,Objective C,Frameworks,Google Maps Sdk Ios,我为我的客户制作了一个objective-C定制框架。自定义框架有许多特性,其中之一是map。我在GoogleMapsSDK上构建了它,并在map上进行了一些额外的操作。我将这些框架和包添加到我的自定义框架项目中 GoogleMapsCore.framework GoogleMapsBase.framework GoogleMaps.framework GoogleMaps.bundle 自定义框架适用于几乎所有客户端的应用程序,直到有一个客户端集成了我的自定义框架,但他们之前也将谷歌地图框架

我为我的客户制作了一个objective-C定制框架。自定义框架有许多特性,其中之一是map。我在GoogleMapsSDK上构建了它,并在map上进行了一些额外的操作。我将这些框架和包添加到我的自定义框架项目中

GoogleMapsCore.framework
GoogleMapsBase.framework
GoogleMaps.framework
GoogleMaps.bundle
自定义框架适用于几乎所有客户端的应用程序,直到有一个客户端集成了我的自定义框架,但他们之前也将谷歌地图框架上的那些框架包含到他们的项目中,用于他们的应用程序专用目的,这与自定义框架上的我的地图无关

他们的应用程序可以成功构建,但在运行时会崩溃

*** 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.
objc[483]:类GMSBaseClearcutClient在/private/var/containers/Bundle/Application/2BA0B2AF-5D3D-4664-BAB4-866D3BC9FFCE/.app/Frameworks/.framework/(0x10xxxxxx)和/private/var/containers/Bundle/Application/2BA0B2AF-5D3D-4664-BAB4-866D3BC9FFCE/.app/(0x10xxxxxx)中实现。将使用其中一个。哪一个是未定义的。
我在互联网上搜索了一下,发现问题可能是应用程序添加了这4个谷歌地图框架,并多次捆绑,如下所示

我想问题是应用程序添加了这些谷歌地图框架本身,我的自定义框架也添加了这些


所以我的问题是,我们如何使应用程序只识别应用程序项目目录中的Google map SDK,而不识别自定义框架中的那些。是否有任何方法可以配置自定义框架可以完全隐藏其外接程序框架,不受外部应用程序的影响

我不知道原因,但在客户端应用程序上-谁在项目中使用谷歌地图-Pods-[AppName]cocoapods创建的.debug.xconfig文件将找到其他\u ldflag,您将看到它链接到您在框架中链接的相同框架。因此,如果他们删除-framework[duplicatedframework],警告就会消失

似乎是cocoapods的错误


我遇到了一个类似的问题,通过

添加-将所有链接器加载到构建设置中的其他链接器标志。

-all_load强制链接器从它看到的每个归档中加载所有对象文件,即使是那些没有Objective-C代码的文件


问题是,应用程序本身添加了这些谷歌地图框架,而我的自定义框架也添加了这些

我不这么认为

如果是这样,Xcode将报告不明确的方法/重复符号