最近集成百度地圖,遇到了不少坑,耽誤了一個(gè)下午,官方的說(shuō)明和一些博主的說(shuō)明相互沖突,找不到一篇合適的解決問(wèn)題的文檔,所以就在這里自己寫(xiě)一個(gè),幫助別人也提醒自己下次不要犯錯(cuò).
集成步驟
1.申請(qǐng)密鑰
2.下載SDK,導(dǎo)入SDK
3.配置開(kāi)發(fā)環(huán)境
申請(qǐng)密鑰
這塊簡(jiǎn)單,按照官方的鏈接來(lái)就可以了.
飛機(jī)票
下載SDK,導(dǎo)入SDK
官方有三種下載模式,如果是自己學(xué)習(xí),建議全部下載.如果是項(xiàng)目運(yùn)用,建議自定義下載,這樣可以減少包體積,也提升下載速度.具體看下圖.
配置開(kāi)發(fā)環(huán)境
重點(diǎn)來(lái)了
1 根據(jù)需要導(dǎo)入 .framework包
百度地圖 iOS SDK 采用分包的形式提供 .framework包厅贪,請(qǐng)廣大開(kāi)發(fā)者使用時(shí)確保各分包的版本保持一致。其中BaiduMapAPI_Base.framework為基礎(chǔ)包主之,使用SDK任何功能都需導(dǎo)入贡翘,其他分包可按需導(dǎo)入恳邀。
2 混合編譯麻煩
官方說(shuō)明的是:
靜態(tài)庫(kù)中采用Objective-C++實(shí)現(xiàn)雄可,因此需要您保證您工程中至少有一個(gè).mm后綴的源文件(您可以將任意一個(gè).m后綴的文件改名為.mm),或者在工程屬性中指定編譯方式溜在,即在Xcode的Project -> Edit Active Target -> Build Setting 中找到 Compile Sources As很澄,并將其設(shè)置為"Objective-C++"
但是
有的文檔會(huì)告訴我們,這兩個(gè)操作都要操作,不然有問(wèn)題,當(dāng)你兩個(gè)都操作的時(shí)候,你會(huì)發(fā)現(xiàn) 這么做會(huì)有30個(gè)錯(cuò)誤或者41個(gè)錯(cuò)誤,具體有找不到包錯(cuò)誤或者編譯錯(cuò)誤.
建議
Compile Sources As不需要設(shè)置成"Objective-C++",不變就可以了,只操作官方說(shuō)明的前一部分,即因此需要您保證您工程中至少有一個(gè).mm后綴的源文件(您可以將任意一個(gè).m后綴的文件改名為.mm).
3 引入所需的系統(tǒng)庫(kù)
百度地圖SDK中提供了定位功能和動(dòng)畫(huà)效果京闰,v2.0.0版本開(kāi)始使用OpenGL渲染,因此您需要在您的Xcode工程中引入CoreLocation.framework和QuartzCore.framework甩苛、OpenGLES.framework蹂楣、SystemConfiguration.framework、CoreGraphics.framework讯蒲、Security.framework痊土、libsqlite3.0.tbd(xcode7以前為 libsqlite3.0.dylib)、CoreTelephony.framework 墨林、libstdc++.6.0.9.tbd(xcode7以前為libstdc++.6.0.9.dylib)赁酝。
4 引入所需的第三方openssl庫(kù)
這里注意了!!!!!!!!!
不要直接把libssl.a和libcrypto.a添加到工程,它會(huì)報(bào)路徑錯(cuò)誤的,正確的做法是,把這兩個(gè)文件拖到自己工程文件中,然后再添加就好了.
添加方法: 在 >Build Phases-> Link Binary With Libaries中點(diǎn)擊“+”按鈕犯祠,在彈出的窗口中點(diǎn)擊“Add Other”按鈕,選擇libssl.a和libcrypto.a添加到工程中
5 環(huán)境配置
在TARGETS->Build Settings->Other Linker Flags 中添加-ObjC酌呆。
6 引入mapapi.bundle資源文件
如果使用了基礎(chǔ)地圖功能衡载,需要添加該資源,否則地圖不能正常顯示mapapi.bundle中存儲(chǔ)了定位隙袁、默認(rèn)大頭針標(biāo)注View及路線關(guān)鍵點(diǎn)的資源圖片痰娱,還存儲(chǔ)了矢量地圖繪制必需的資源文件。如果您不需要使用內(nèi)置的圖片顯示功能菩收,則可以刪除bundle文件中的image文件夾梨睁。您也可以根據(jù)具體需求任意替換或刪除該bundle中image文件夾的圖片文件。
方法:選中工程名娜饵,在右鍵菜單中選擇Add Files to “工程名”…坡贺,從BaiduMapAPI_Map.framework||Resources文件中選擇mapapi.bundle文件,并勾選“Copy items if needed”復(fù)選框划咐,單擊“Add”按鈕拴念,將資源文件添加到工程中钧萍。
特別注意:如果在iOS9中使用了調(diào)起百度地圖客戶端功能褐缠,必須在"Info.plist"中進(jìn)行如下配置,否則不能調(diào)起百度地圖客戶端风瘦。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>baidumap</string>
</array>
這個(gè)時(shí)候你在編譯程序,就不會(huì)有報(bào)錯(cuò)了!!!!!