Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 链接动态(Cocoa Touch)框架内的静态库_Ios_Objective C_Xcode_Cocoa Touch_Google Maps Sdk Ios - Fatal编程技术网

Ios 链接动态(Cocoa Touch)框架内的静态库

Ios 链接动态(Cocoa Touch)框架内的静态库,ios,objective-c,xcode,cocoa-touch,google-maps-sdk-ios,Ios,Objective C,Xcode,Cocoa Touch,Google Maps Sdk Ios,我有一个动态的框架,它可以链接到GoogleMaps(据我所知,它仍然是一个静态库,如果不是这样的话,只是有一个框架包装器) 问题是,框架链接到静态库,而且似乎还直接包含了它的代码,因为我不需要在使用框架的应用程序中链接或嵌入谷歌地图,一切都正常。 除非我也在应用程序中使用谷歌地图 要么在编译阶段得到“未定义的体系结构XY符号”,要么将Google Maps与之链接,然后在应用程序启动期间在调试控制台中得到大量警告,如: 类GMSPolyline2D在两个 /…/Build/Products/D

我有一个动态的框架,它可以链接到GoogleMaps(据我所知,它仍然是一个静态库,如果不是这样的话,只是有一个框架包装器)

问题是,框架链接到静态库,而且似乎还直接包含了它的代码,因为我不需要在使用框架的应用程序中链接或嵌入谷歌地图,一切都正常。 除非我也在应用程序中使用谷歌地图

要么在编译阶段得到“未定义的体系结构XY符号”,要么将Google Maps与之链接,然后在应用程序启动期间在调试控制台中得到大量警告,如:

类GMSPolyline2D在两个 /…/Build/Products/Debug iphonesimulator/MyFramework.framework/MyFramework 和 /../Bundle/Application/7C73324B-4A42-4063-98AA-879345997DE6/MyApp.app/MyApp。 将使用其中一个。哪一个是未定义的

有没有办法只在框架中链接谷歌地图,而不在框架产品中包含符号?它适用于动态框架,但似乎只包括静态库。我已经尝试过使用
-weak_framework
-weak_library
进行弱链接,但它似乎不起作用

实际上,我无法让Xcode在它的framework dir中找到GoogleMaps二进制文件,即使在.framework文件夹中直接链接作为库搜索路径

由于我是我的框架的唯一用户,我可以强制每个使用该框架的应用程序都包括谷歌地图框架。到目前为止,除了警告之外,该应用程序工作正常(到目前为止,运行时使用这两个类中的哪一个并不重要,因为它们应该是相同的)。不过,如果有更好的解决办法,我会睡得更好:)



编辑:我可以通过直接在链接器标志部分中传递绝对路径而不是使用库搜索路径设置来让-weak_库工作。但是,问题仍然存在,显然它仍然包含在框架中。

不要执行Dat

最佳做法是将所有依赖于Google Maps的代码放在一个单独的库中,该库链接到您的库和Google Maps静态库


< Robert Napier >对

的回答发现了一个类似的问题,有一种解决方案,但似乎更像是一种解决方法。我会考虑一下,但是如果有人有一个更干净的想法,我会很感激。你找到了解决这个问题的方法吗?你找到了解决的办法吗?不是一个“解决方案”。对于最初的问题,但我将框架转换回只在其最终目标处链接的静态库,我再次将框架转换为静态库并在最终目标处链接它。不幸的是,这意味着我没有Swift支持,但好吧。@Lukeshwoebel我知道这是一个老评论,但我们不能你现在在静态库中工作吗?