天天看点

百度地图api在xcode4.5中编译需要注意的事情

  今天在老大的要求下,将原来用google地图实现的地图展示,换成百度地图。从开始预研到最后的修改,每一个过程,都有很多需要注意的地方,现对今天遇到的问题做一个总结:

  1,将头文件和百度地图的.a文件添加到项目后,编译不过。

     原因:百度这个sdk出来的时候,苹果还没有出iphone5和ios6,也没有出xcode 4.5,因此,根本谈不上对armv7s的支持。

    解决办法:在工程的编译设置里面,在validateArtitecture里面,将armv7s去掉。(如果项目中,有依赖其他的项目,也需要做类似的处理)

2,申请一个百度key后,添加到适当的位置(见官方文档使用key的例子),程序运行,崩溃,崩溃的bad access处提示key校验崩溃,而随意一个字符串(非key),却不崩溃。

   原因:plist中的display bundle name 设置成了中文(我也不知道作为中国互联网第一有钱公司,不支持中文是什么情况)。

  解决办法:果断把它设置为工程名(英文),这个是我同事发现的,相当具有敏锐的观察力,赞一个。

3,随意写一个key,工程能运行,不崩溃,发现地图能定位,但是,地图的内容是空白的。

  原因:key不对。终于发现key的重要作用了,原来如果想得到百度返回的数据,就要有正确的key。

  解决办法:申请一个key。(注意,使用正确的key,可能会出现第2种情况)

4,使用百度提供的api的真机版的.a文件,死活编译不过。

  原因:根据错误提示,可以倒推出,这个真机版本为了兼容ios3.0的版本,当初使用的是 armv6来编的,在ios5上出了一点小岔子。(也有可能是我工程设置的问题,不太肯定)

  解决办法:讲simulater和真机办的两个.a文件合成为一个大的.a文件,合成方法,在线指南上有,而那个所谓的开发指南的.pdf文件里面没有。(这个相当坑爹,鄙视之)

在项目编译的过程中,基本就这些问题,希望能为大家省点时间,也希望百度早点更新skd。明天我会完成后续的工作,有新情况会写续集,希望大家关注。。。

继续阅读