前言
集成百度地圖還是很簡單的只要注意些細節,絕對OK的了!! 只要按照我的流程來就可以。
-
一 申請秘鑰
官方已經寫得很清楚了 點這里
這里注意點一點是:啟用服務是指你在項目中需要用到的服務,打勾就是指啟用
-
二 導入所需庫及.a文件和mapapi.bundle文件
導入庫文件這些有兩種方式手動導入和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要一致
以上幾點一定要滿足,其中的最后一個把我摧殘的不要不要的
-
四 初始化地圖
具體的一些導航啦定位的一些方法代理 點這里
結論:
以上一個小小的百度地圖就出來了
具體流程就這些如有疏漏還望海涵