iOS 百度地图及那些坑

2017-01-18  本文已影响906人  Icanbe

前言

集成百度地图还是很简单的只要注意些细节,绝对OK的了!! 只要按照我的流程来就可以。

官方已经写得很清楚了 点这里
这里注意点一点是:启用服务是指你在项目中需要用到的服务,打勾就是指启用

申请秘钥

导入库文件这些有两种方式手动导入和CocoaPods这里重点说的是手动导入需要注意的这些坑

手动导入
1.不要按官方的方式导入(切记)  直接脱,对的是直接脱
2.mapapi.bundle文件找不到? 其实他在BaiduMapAPI_Map.framework的Resources里
3.官方说静态库采用了Objective-C++实现所以要在工程里至少保证有一个.mm后缀的源文件,直接在AppDelegate.m后加个m或者在工程属性中指定编译方式,个人不建议后者,你试了就会知道什么是 崩溃崩溃崩溃
CocoaPods导入

点这里

在以上都完成时需要注意一些细节
1.在Xcode的Project -> Edit Active Target -> Build Setting -> Other Linker Flags中添加-ObjC
2.如果在iOS9中使用了调起百度地图客户端功能,必须在"Info.plist"中进行如下配置,否则不能调起百度地图客户端。

    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>baidumap</string>
    </array>

3.管理地图的生命周期,BMKMapView在一个时刻只能有一次接受回调消息,因此在viewController中调用以下BMKMapView的对应的方法,并且不要忘记添加代理

地图的生命周期

4.官方自iOS SDK v2.5.0起,对iOS8的定位能力做兼容,,以下二选一
NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述
NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述
5.在使用Xcode6进行SDK开发过程中,需要在info.plist中添加:Bundle display name ,且其值不能为空(Xcode6新建的项目没有此配置,若没有会造成manager start failed)
6.Bundle Identifier要和申请秘钥安全码以及info.plist的Bundle Identifier要一致
以上几点一定要满足,其中的最后一个把我摧残的不要不要的

具体的一些导航啦定位的一些方法代理 点这里

初始化地图
 结论:
 以上一个小小的百度地图就出来了 
 具体流程就这些如有疏漏还望海涵
上一篇 下一篇

猜你喜欢

热点阅读