是否可以在基于iOS版本的链接之前加载库?

时间:2013-05-16 06:32:26

标签: ios ios6 mapkit dynamic-linking google-maps-sdk-ios

我有一个应用程序应该使用谷歌地图和mapkit框架。现在,只有iOS版本5.1支持谷歌地图,而较低版本支持Mapkit框架。 我想申请:

  1. 在较低版本的设备上加载Mapkit。
  2. 为5.1及以上版本加载Google地图,  在链接之前。

    Bottomline是,在链接之前,是否可以在应用程序启动时根据设备的iOS版本加载特定库?或者我可以根据iOS版本以编程方式在两者之间进行选择吗? 谢谢你的帮助。

3 个答案:

答案 0 :(得分:2)

可以在两者之间进行选择,但您所描述的内容是不可能的。 Apple不允许第三方动态链接框架。 Google Maps框架实际上是您应用程序中的静态库,因此它存在于您的二进制文件中(不涉及链接)。

答案 1 :(得分:2)

请注意,在您的应用中仅包含Google Maps SDK for iOS会使其在iOS 4.x上崩溃 - 即使您没有在SDK中调用任何内容。有关详细信息,请参见此处:

Google Maps SDK for iOS trying to run on iOS 4.3

因此,如果您采用这种方法,您将能够在iOS 5.1+上使用Google地图,但只能在iOS 5.0上使用Apple地图。鉴于可能只有不到1%的用户运行iOS 5.0(see here),这可能不值得。

答案 2 :(得分:1)

我应该指出SDK显然不是API兼容的,因此在每种情况下您都需要不同的代码,并且不能仅仅根据iOS版本更改地图视图的类。