这两天调试百度地图的sdk,各种坑,百度这文档,我也是无力吐槽了~~
按照管网上的配置步骤配置:(Xcode6.2) 官方文档
1.拷贝BaiduMapAPI.framework(分模拟器和真机两个版本,自己看情况导入)到工程根目录,然后左边文件选择那里选中Project根目录,进入项目设置,Targets(Your Target)->Build Phases->Link Binary With Libraries-> + -> Add Other... -> 选择刚拷贝的framework文件。然后随便重命名一个.m文件为.mm文件,(官网文档也不知几年前的,Xcode不是用的LLMVM么,这里另外一种方式竟然是设置GCC!)
2.添加其它依赖库,1步骤那里继续添加系统的几个库(文档中的设置方法不知所云):CoreLocation.framework和QuartzCore.framework、OpenGLES.framework、SystemConfiguration.framework、CoreGraphics.framework、Security.framework。
3.工程设置->Project->Build Setting->Linking->Other Linker Flags ,在右侧双击,然后添加一项 “-ObjC”
4.导入framework文件夹下面的mapapi.bundle 资源文件,具体为File->Add file to "Your Project",然后选择上面的BaiduMapAPI.framework/Resource/mapapi.bundle。
照这步骤配置完,死活不成功,结果总是在下面这个图片这里BMKMapManager start失败:
各种郁闷,重新配置了几遍都一样,一度怀疑人品不行了,最后群里问了一下,热心网友告诉我,Bundle display name可能有问题,仔细检查了一下,我的工程里面没有设置这个。对照sdk中自带的demo,里面确实设置了,然后尝试在Info.plist里面添加:右键->Add Row->Bundle display name, string类型,里面随便填点什么东西,然后重新运行,就好了。看图:
然后就OK了,接下来添加mapview,又出现问题,什么提示都没有,就有一条 “引擎初始化失败” 的log,模拟器上左下角显示一个百度地图的log,界面是灰色的,郁闷,最后网上搜到解决办法:
卸载模拟器上的app,并且在xcode中clean一下工程,再重新运行就好了,最后终于看到狗屎地图了!