我有一个应用程序应该使用谷歌地图和 mapkit 框架。现在,谷歌地图仅在 iOS 5.1 及更高版本上受支持,而 Mapkit 框架在较低版本上受支持。我希望应用程序:
- 在较低版本的设备上加载 Mapkit。
在链接之前加载 5.1 及更高版本的 Google 地图。
底线是,在链接之前,是否可以在应用程序启动时根据设备的 iOS 版本加载特定的库?或者,我可以根据 iOS 版本以编程方式在两者之间进行选择吗?谢谢你的帮助。
我有一个应用程序应该使用谷歌地图和 mapkit 框架。现在,谷歌地图仅在 iOS 5.1 及更高版本上受支持,而 Mapkit 框架在较低版本上受支持。我希望应用程序:
在链接之前加载 5.1 及更高版本的 Google 地图。
底线是,在链接之前,是否可以在应用程序启动时根据设备的 iOS 版本加载特定的库?或者,我可以根据 iOS 版本以编程方式在两者之间进行选择吗?谢谢你的帮助。
可以在两者之间进行选择,但是您所描述的确切是不可能的。Apple 不允许第三方动态链接框架。Google Maps 框架实际上是您应用程序中的一个静态库,因此它存在于您的二进制文件本身中(不涉及链接)。
请注意,在您的应用程序中仅包含适用于 iOS 的 Google Maps SDK 会使其在 iOS 4.x 上崩溃 - 即使您没有在 SDK 中调用任何内容。有关详细信息,请参见此处:
Google Maps SDK for iOS 尝试在 iOS 4.3 上运行
因此,如果您采用这种方法,您将能够在 iOS 5.1+ 上使用 Google 地图,但只能在 iOS 5.0 上使用 Apple 地图。鉴于可能只有不到 1% 的用户正在运行 iOS 5.0(请参见此处),因此可能不值得这么麻烦。
我应该指出,SDK 显然不兼容 API,因此您在每种情况下都需要不同的代码,并且不能仅仅根据 iOS 版本更改地图视图的类。