集成百度地图SDK流程介绍 - iOS

1. 下载SDK

1.1 选择对应的SDK

Paste_Image.png

1.2 手动下载

1.3 获取秘钥, 使用BundleId创建秘钥AK, 让百度地图

Paste_Image.png

1.4 ==>注册百度账号 ==> 创建应用 ==> 生成AK

注意:此处的安全码就是应用的 BundleId 一定要一一对应起来 !

Paste_Image.png

1.4 拷贝AK

Paste_Image.png

2.0 配置开发环境

2.1 在info.plist中添加ATS, iOS9.0以后需要支持Https安全协议

Paste_Image.png

2.2 修改编译方式, 增加.mm后缀, 或者修改Compile Sources As中的编译依赖类型为Objective-C++即可

1、静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm 如: 可以改成AppDelegate.mm),

Paste_Image.png

或者在工程属性中指定编译方式,即在Xcode的Project -> Edit Active Target -> Build Setting 中找到--> Compile Sources As (复制 -- 粘贴 -- 定位),并将其设置为"Objective-C++"

Paste_Image.png

2.3

如果您只在Xib文件中使用了BMKMapView,没有在代码中使用BMKMapView,编译器在链接时不会链接对应符号,需要在工程属性中显式设定:在Xcode的Project -> Edit Active Target -> Build Setting -> Other Linker Flags中添加-ObjC

2.4 使用OpenURL方法 调用百度客户端时需要在info.plist中配置应用白名单

如果在iOS9中使用了调起百度地图客户端功能,必须在"Info.plist"中进行如下配置,否则不能调起百度地图客户端。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>baidumap</string>

</array>

2.5 管理地图的生命周期

自2.0.0起,BMKMapView新增viewWillAppear、viewWillDisappear方法来控制BMKMapView的生命周期,并且在一个时刻只能有一个BMKMapView接受回调消息,因此在使用BMKMapView的viewController中需要在viewWillAppear、viewWillDisappear方法中调用BMKMapView的对应的方法,并处理delegate,代码如下:

 - (void)viewWillAppear:(BOOL)animated { 
    [_mapView viewWillAppear]; 
    // 此处记得不用的时候需要置nil,否则影响内存的释放 
    _mapView.delegate = self; 
    } 
-(void)viewWillDisappear:(BOOL)animated {
  [_mapView viewWillDisappear]; 
  // 不用时,置nil    
  _mapView.delegate = nil; 
 }

2.6 定位兼容

自iOS SDK v2.5.0起,为了对iOS8的定位能力做兼容,做了相应的修改,开发者在使用过程中注意事项如下: 需要在info.plist里添加(以下二选一,两个都添加默认使用NSLocationWhenInUseUsageDescription):
NSLocationWhenInUseUsageDescription ,允许在前台使用时获取GPS的描述
NSLocationAlwaysUsageDescription ,允许永久使用GPS的描述

2.7 必须设置Display Name

在使用Xcode6进行SDK开发过程中,需要在info.plist中添加:Bundle display name ,且其值不能为空(Xcode6新建的项目没有此配置,若没有会造成manager start failed)

推荐阅读更多精彩内容