标签:
最近有项目要使用到地图功能,先做一下调研。百度的ios开发环境需要具备两点,一 秘钥 二 SDK。在百度上搜索“ios百度地图api”,然后打开网页“百度地图API-首页”。在此官网上可以获取所有需要的条件。
一 获取秘钥
在官网上点击“申请秘钥”
点击创建应用
这里需要注意几点:
1 应用类型选择 iOS SDK;2 安全码是使用百度地图SDK的APP的bundle ID。
点击提交,这样在你账号下的应用列表中就能看到百度给你分配的秘钥了。访问应用(AK)字段即为秘钥。
二 获取SDK并且配置环境
在iOS地图SDK > 相关下载中,选择传统.a形式静态库(本文以.a为例,想使用.framework的朋友请自行研究并感谢分享^_^),全部下载。解压缩,在BaiduMap_IOSSDK_v2.8.0_Lib目录中可以看到百度给了两个.a文件,分别是真机和模拟器的。打开终端,执行命令将两个.a文件打包成一个既可以真机使用也可以模拟器使用的.a文件。
然后将生成的.a文件拖到工程中。将inc目录中的所有SDK的头文件拖到工程中。将mapapi.bundle拖入工程。
添加工程所依赖的framework:Foundation.framework、UIKit.framework、MessageUI.framework、Security.framework、CoreGraphics.framework、SystemConfiguration.framework、OpenGLES.framework、QuartzCore.framework、CoreLocation.framework。
将AppDelegate.m文件后缀改成.mm(因为SDK实现是用c++写的,所以工程中需要至少有一个c++文件。也不改名,将工程中的compile source as设置为objective c++)。
根据秘钥中填写的信息,修改工程的bundleID和display name 。
在info.plist中增加字段NSLocationAlwaysUsageDescription和NSLocationWhenInUseUsageDescription,值都为YES(app启动时会向用户索要权限,两个字段都设置时,后者生效)。增加Bundle display name字段,否则百度地图初始化时会报错。
在AppDelegate.h中添加BMKGeneralDelegate协议(检查网络状态)
在AppDelegate.mm中添加代码
在viewcontroller中添加代码
编译、运行。
问题解决:
1 编译提示 不支持 arm64、armv7等等,第一请确认工程设置为objectiv c++编译模式,第二请确认所有的framework已添加。
2 没有授权成功,请确认秘钥的申请流程、bundleID等是否填写正确。
3 不进入didUpdateBMKUserLocation回调函数的,请将_locService变量设置为成员变量,百度例子中给的局部变量出了函数就消失了,启动的服务也自然停止了。
目前为止,环境安装已就绪,稍后将会继续分享具体的使用心得。
标签:
原文地址:http://www.cnblogs.com/xingjizhao/p/4631079.html