这真的是一位大神啊,写的教程简单易懂,膜拜并学习ios
因为工做须要,要开始捣腾百度地图了,今天上午初始牛刀,各类碰壁,无奈之下,中午睡了一觉,养精蓄锐,以备下午大战三百回合,所幸下午中午把百度地图Demo捣腾出来了,在此与你们分享,环境搭建教程,菜鸟专用,大神勿喷!api
本文旨在帮助新手快速搭建ios版百度地图,官网有相关教程,但是太旧了,如今的xcode都更新到了4.6,他的教程应该是在4.3以前吧。估计新手在搭建的时候必定会遇到错误,按照个人教程一步一步,保证你花最少的时间,快速进行地图开发。xcode
机器环境:mac os x 10.8.2
开发环境:xcode4.6
真机环境:iPod Touch4G 版本:6.1.2
地图版本:BaiduMapApi_Lib_iOS_1.2.2 下载地址:http://developer.baidu.com/map/sdk-ios.htm
【注】:使用百度地图的SDK须要申请key,应用名称可随意写,前提是有百度帐号,详情官网查看。
网络
2.1 官网下载最新的SDK开发包_iOS静态库文件 http://developer.baidu.com/map/sdkiosdev-download.htm
解压后以下图所示:
app
2.2 打开xcode,新建一个demo工程(或是在你现有的工程下),建立好后把下载的的inc,libs,mapapi.bundle三个文件夹导入到工程内,注意须要copy+destination,看我以下截图:
ide
必定要勾选copy和create group 同时要添加到target。
学习
2.3 几乎全部的第三方地图sdk都是依赖于apple自有的几个framework,因此这一步须要咱们导入:CoreLocation.framework和QuartzCore.framework。导入方法以下:
测试
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
此时若是.h导入BMapKit.h头文件,实例化BMKMapManager或是BMapView,必定会有以下的错误:
ui
貌似提示:libbaidumapapi.a找不到,那么是路径的问题么?这就是你们常遇到的BMKMapManager错误。其实原理是系统没法连接到咱们的地图静态库,解决办法以下文:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
spa
2.4 上边是个小尝试和插曲,咱们继续下一步,选中工程,target,切换到Build Setting标签,定位到other link flag,
输入:-all_load
2.5 如今须要设置一下连接库的环境变量,好让项目能顺利找到目录下的.a文件,选中工程,target,切换到build setting标签,定位到Library search Path ,以下图所示:
删除已有的三个,添加一个足矣(模拟器+真机):$(SRCROOT)/libs/Release$(EFFECTIVE_PLATFORM_NAME)
简单解释一下:
$(SRCROOT)宏表明您的工程文件目录,$(EFFECTIVE_PLATFORM_NAME)宏表明当前配置是OS仍是simulator,这个涉及环境变量的相关知识,我也不太懂,全是本身尝试出来的,你们直接copy我这行就好了。以下:
2.6 这个时候,静态库文件已经设置完毕,剩下的就只有代码工做了,因为须要key的验证,因此咱们先须要使用BMKMapManager类,配置申请到的key,以获得受权。选中AppDelegate.h
选中AppDelegate.m,修改为.mm,(注:静态库中采用ObjectC++实现,所以须要您保证您工程中至少有一个.mm后缀的源文件(您能够将任意一个.m后缀的文件更名为.mm))
【注意:若是没有mm,运行会大量报错的】
在AppDelegate.mm中的didFinishLaunchingWithOptions,加入以下代码:
2.7 在须要显示地图的viewcontroller.m中加入以下代码:
导入BMKMapView.h后,实例化BMKMapView类。
2.8 在AppDelegate中受权事后,能够随意在任意的Viewcontroller中使用Mapview了。
(固然,BMKMapManager受权也能够写到任意的ViewController中,可是这样的话,只能在这个ViewController中使用MapView,换其它类使用地图的话,还需再来受权,不然地图view会是黑屏):
真机截图:
以上是全部内容,但愿对你们有所帮助。
整个过程,就中间设置环境变量比较麻烦,但之后不论是模拟器仍是真机调试,都不用再作任何设置了,很差嘛?
下载地址:
百度地图API打包:http://download.csdn.net/detail/u010013695/5414913