百度地图向来比较坑的,虽然在开发文档中写了很多可能出现的问题,但还是没有做到穷尽,在开发过程中能遇到的问题随时记录。一般有两种方:如果使用cocoapad这个就比较简单了,只需要下载导入百度地图的sdk即可;如果是手动操作,要特别注意,每个框架和依赖都要仔细看一下。
第一种:使用cocoapade(文档中都有,简单说明)
注:此种方式只支持导入全量包的SDK,包含百度地图iOS SDK所有功能
一、前提:安装CocoaPods
在终端输入
sudo gem install cocoapods
如果安装成功,会有一个提示
Successfully installed cocoaPods
二、使用CocoaPods导入地图SDK
在当前工程文件(.xcodeproj)所在文件夹下,打开terminal
1.创建Podfile:touch Podfile
2.编辑Podfile内容如下:pod 'BaiduMapKit' #百度地图SDK
3.在Podfile所在的文件夹下输入命令:
pod install
之后就可以静静等待成功到来(。。。时间可能有点长,耐心一点)
第二种:手动操作(iOS SDK)
/** --- 静态库中采用ObjectC++实现,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm),或者在工程属性中指定编译方式,即在Xcode的Project -> Edit Active Target -> Build Setting 中找到 Compile Sources As,并将其设置为"Objective-C++"--**/,
PS:
设置Object-C还是Object-C++问题,集成前先别设置,看一下是否可以运行成功。小明在这里很是费解,工程再来回切换语言时会报错!!!一般都是清除一下恢复原样的,也打一个大大的 ?。
Poi检索周边
文档提示要将key和bundle identity保持一致,起初设置是不相同的,后来改回来还是有问题,一直报“周边检索发送失败”
文档相关的问题都已经添加了,还是没有效果(在模拟器上),但是真机上是可以运行的,这种情况发生一般是自己的模拟器上设置问题。
1.模拟器上默认位置选项是无(debug-->location-->custom location)
2.应用没有授权(设置-->隐私--->里面设置)。
ps:当然如果都不是,那和小明一样比较费劲了,模拟器上的定位可能存在问题。建议使用真机调试。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
顺便加一个小常识:
当xcode版本和真机的版本不匹配时该怎么办?
(手机版本高于xcode版本)
1.先下载高版本的模拟器文件
2.找到xcode模拟器对应的地址
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
3.导入即可