我为我的客户制作了一个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 Map框架,而我的自定义框架也添加了这些。
所以我的问题是,我们如何才能使应用程序仅识别应用程序项目目录上的那些Google Map SDK,而不是自定义框架上的那些。有没有什么方法可以配置自定义框架,可以从外部应用程序中完全隐藏其加载项框架
我为我的客户制作了一个Objective-C定制框架。自定义框架具有许多功能,其中之一就是地图。我在Google Maps SDK之上构建了它,并在地图上进行了一些其他操作。我添加了...
我不知道原因,但在客户端应用程序的-谁在其项目上使用google map- cocoapods创建的Pods- [AppName] .debug.xcconfig文件中,他们会找到OTHER_LDFLAGS,您会看到它链接到您在框架中链接的相同框架。因此,如果他们删除-framework [Duplicated framework],该警告就会消失。
似乎是cocoapods错误