iOS 百度地图开发(一) sdk添加

原创
2015/01/28 11:00
阅读数 65

最近需求要原有项目里面添加地图功能

谷歌地图直接pass, 墙太狠了

英语可以的用高德地图没问题,api和代码注释都可以看懂

对我这种英语烂的,还是百度地图是福音,

百度地图api和字里行间的代码注释都是中文,而且还很相信,赞一个


开发百度地图需要百度账号,没有就搞一个吧,一号多用,以后还可以搞搞百度云之类的

登陆http://developer.baidu.com/map/ ,找到API控制台

创建应用申请 百度地图key,注意安全码是app的bundle id

下载百度地图sdk,最好带demo 一块下了,方便以后扩展的时候参考


新建环境吧,搞了一个下午才搞定

因为iPhone 真机和模拟器的核心处理器不一样,真机是arm 而模拟器用的是mac的处理器 是inter的 所以百度静态包的添加不一样,在http://developer.baidu.com/map/index.php?title=iossdk/guide/hellobaidumap

上有说明:

引入静态库文件

百度地图SDK提供了模拟器和真机两中环境所使用的静态库文件,分别存放在libs/Release-iphonesimulator和libs/Release-iphoneos文件夹下。有三种方式可以引入静态库文件:

第一种方式:直接将对应平台的.a文件拖拽至Xcode工程左侧的Groups&Files中,缺点是每次在真机和模拟器编译时都需要重新添加.a文件;

第二种方式:使用lipo命令将设备和模拟器的.a合并成一个通用的.a文件,将合并后的通用.a文件拖拽至工程中即可,具体命令如下: lipo -create Release-iphoneos/libbaidumapapi.a Release-iphonesimulator/libbaidumapapi.a -output libbaidumapapi.a

第三种方式:

1. 将API的libs文件夹拷贝到您的Application工程根目录下

2. 在Xcode的Project -> Edit Active Target -> Build -> Linking -> Other Linker Flags中添加-ObjC

3. 设置静态库的链接路径,在Xcode的Project -> Edit Active Target -> Build -> Search Path -> Library Search Paths中添加您的静态库目录,比如"$(SRCROOT)/../libs/Release$(EFFECTIVE_PLATFORM_NAME)",$(SRCROOT)宏代表您的工程文件目录,$(EFFECTIVE_PLATFORM_NAME)宏代表当前配置是OS还是simulator

注:静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即将Xcode的Project -> Edit Active Target -> Build -> GCC4.2 - Language -> Compile Sources As设置为"Objective-C++"


第一种方式没用过

第二种方式没成功过

我用的是第三种方式,1)、2)两步毫无压力, 第三步配置静态目录,$(SRCROOT)/../libs/Release$(EFFECTIVE_PLATFORM_NAME)把路径copy全了,若lib文件夹放到根目录则可以删除省略号,若没有则需要填入相应的文件夹, 我在此处滑倒,费事1个小时


静态库用的是Object C++实现的, 所以需要工程中至少有一个.mm后缀的文件,  当时头昏,没看到《《或者》》二字,所以顺手把Compile Sources As 也设置了

由于原项目里面有开源包,添加了SDWebImage 所以设置Compile Sources As后编译不通过,在此处费时俩小时

解决方法,忽略或者后边的文字


磕磕绊绊编译通过,也没问题了,终于可以显示到手机(模拟器)上了,发现  manager start failed! 把官方demo比较,上网查资料,费时1个小时,发现info.plist 需要添加一项Bundle display name,名字和文件中的Bundle name名字一样即可

如此这般终于    

TestMail[918:607] 联网成功

TestMail[918:607] 授权成功

百度sdk添加成功




展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部