百度地图SDK导入到工程

因为工作的需要,要在Xcode6.2下将百度地图SDK导入到工程中,但是导入中发现了很多的问题,百度了网上前人得帖子,都不是很详细,或者因为很比较早的原因,都有这样那样的问题,百度的官网上的说明也不是很详细,于是花了半天时间终于搞定,这就把步骤与大家分享。

ios百度地图sdk下载页面:http://developer.baidu.com/map/index.php?title=iossdk/sdkiosdev-download

ios百度地图开发者key申请:http://developer.baidu.com/map/ios-mobile-apply-key.htm

这些我就不详细说了,网上很多帖子,一一参照即可。

 

1:将下载的sdk包解压,里面有如下内容:

我们只需要将第二个lib文件解压,第一个是帮助文档,第三个是例子,可以自己看。

2:将lib解压,得到如下内容

a:inc文件夹内都是头文件

b:mapapi.bundle是百度自带的资源图标

c:readme.txt是帮助文档

d:剩下的两个一个是模拟器的.a文件,一个是真机的.a文件

这里我使用的方法是把模拟器的.a和真机的.a合并到一起去,使用lipo命令,这个是基本的操作,不会的话可以百度IOS模拟器.a与真机.a合并

在此目录下新建一个文件夹,把合并之后的.a文件放进去等待使用,如下图:

自此,准备工作已经完毕。

1:打开xcode6.2,新建一个工程,将mapapi.bundle和Relesae-iphone通过右键工程选择“Add Files to …”,导入到工程中

编译通过,没问题

2:然后设置头文件的链接路径,在 Xcode 的 Project -> Edit Active Target -> Build Settings-> Search Path -> Header Search Paths 中添加头文件目录:

"$(SRCROOT)/inc"
其中$(SRCROOT)宏代表您的工程文件所在目录。

直接复制粘贴即可,/inc的路径可能和实际的有所不同,根据自己的情况做相应的修改

3:设置静态库的链接路径,在 Xcode 的 Project -> Edit Active Target -> Build Settings

-> Search Path -> Library Search Paths 中添加您的静态库目录,

添加内容如下:
"$(SRCROOT)/Release-iphone$(EFFECTIVE_PLATFORM_NAME)"
其中,$(SRCROOT)宏代表您的工程文件目录,$(EFFECTIVE_PLATFORM_NAME)
宏代表当前配置是 OS 还是 simulator,在编译时编译器会根据您当前的编译环境
自动匹配合适的.a 文件。

4:导入 framework

百度地图 API 中提供了定位功能和动画效果,V2.0.0 版本开始使用 OpenGL
渲染,因此 必 须 引 入 CoreLocation.framework 、 QuartzCore.framework 、
SystemConfiguration.framework、CoreGraphics.framework、OpenGLES.framework;
V2.0.2 版本新增短串分享功能,如果您使用了通过信息来进行短串分享的功
能,需要额外引入 MessageUI.framework,如果您没有用到该功能则不需要引入;
V2.1.0 版本开始对 iOS7 系统下的 IMEI(设备唯一标识)进行了适配,因此
使用 V2.1.0 及以上版本必须要额外引入 Security.framework;

5. 其他配置
a、 静态库中采用 ObjectC++实现,因此需要您保证您工程中至少有一个.mm 后
缀的源文件,您可以采取以下两种方法的任意一种来修改您的工程文件:
(1) 将任意一个.m 后缀的文件改名为.mm;
(2) 在工程属性中指定编译方式,即将 Xcode 的 Project -> Edit Active Target
-> Build -> GCC4.2 - Language -> Compile Sources As 设置为
"Objective-C++";
b、 如果您只在Xib文件中使用了BMKMapView,没有在代码中使用BMKMapView,
编译器在链接时不会链接对应符合,需要在工程属性中显式设定:在 Xcode
的 Project -> Edit Active Target -> Build Settings -> Linking -> Other Linker Flags 中
添加"-ObjC";
c、 如果使用 Xcode5 开发基于 iOS7 的百度地图应用时,请将 Xcode5 的 Project ->
Edit Active Target -> Build Settings -> Linking -> Other Linker Flags 中的"-ObjC"修
改为"-all_load";

然后就可以运行了。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值