1. 下载SDK
1.1 选择对应的SDK
1.2 手动下载
1.3 获取秘钥, 使用BundleId创建秘钥AK, 让百度地图
1.4 ==>注册百度账号 ==> 创建应用 ==> 生成AK
注意:此处的安全码就是应用的 BundleId 一定要一一对应起来 !
1.4 拷贝AK
2.0 配置开发环境
2.1 在info.plist中添加ATS, iOS9.0以后需要支持Https安全协议
2.2 修改编译方式, 增加.mm后缀, 或者修改Compile Sources As中的编译依赖类型为Objective-C++即可
1、静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm 如: 可以改成AppDelegate.mm),
或者在工程属性中指定编译方式,即在Xcode的Project -> Edit Active Target -> Build Setting 中找到--> Compile Sources As (复制 -- 粘贴 -- 定位),并将其设置为"Objective-C++"
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)