百度地图SDK使用过程中的那些坑

  1. 使用跟demo相同的Key,并且联网成功,授权成功,但是在初始化地图的时候提示引擎初始化失败,解决方法:检查SDK中的资源文件mapapi.bundle是否导入,如果没有导入,导入即可。
  2. 由于百度地图的SDK分为模拟器上使用的SDK和真机上使用的SDK,如果不慎将SDK导错(比如,在真机测试时,导入了模拟器上使用的SDK),会出现以下错误:
    百度地图SDK使用过程中的那些坑_第1张图片
    将在模拟器上,使用真机SDK,出现的错误,
    这里写图片描述
    解决办法,删除当前的SDK,导入正确的SDK。
    但是,由于在实际的开发过程中,每次调试就要重新导入SDK是一件特别烦得事情,因此,我们可以将百度地图的两个SDK进行合并。合并的步骤如下所示:
    (1)打开中终端,使用cd命令进入到要合并的文件所在的路径,比如:cd /Users/[用户名]/Desktop/百度/Release-iphoneos/BaiduMapAPI.framework
    (2)使用lipo –info BaiduMapAPI 查看当前库的信息 ,
    这里写图片描述
    armv7 armv7s arm64 表示只支持真机。同样的操作步骤可以查看模拟器的。输出i386 x86_64表示只支持模拟器。
  3. 合并文件。使用命令
    lipo -create xxxx/ BaiduMapAPI xxxxx/ BaiduMapAPI -output BaiduMapAPI进行文件的合并。其中XXXX表示文件的路径,合并操作完成之后将合并后的文件拷贝到BaiduMapAPI.framework文件下,将之前的文件替换掉。上述操作完成之后,进入到从终端进入到BaiduMapAPI.framework文件夹下,使用命令lipo –info BaiduMapAPI 命令查看当前库的信息。
    这里写图片描述
    如果输出信息为 armv7 armv7s i386 x86_64 arm64 表示当前库同时支持模拟器和真机。
  4. 如果导入百度地图SDK之后,需要导入导航SDK,但是根据官网的配置,配置完成之后发现,使用模拟器编译报错,错误信息如下:
    duplicate symbol _DispatchVMsgToObservers in:
    /Users/[路径]/Classes/ThirdPart/BaiduNavi_iOSSDK_v2.0.4_Lib/libbaiduNaviSDK.a(VMsg.o)
    /Users/[路径]/Classes/ThirdPart/BaiduMapAPI.framework/BaiduMapAPI(VMsg.o)
    ld: 1 duplicate symbol for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    解决办法:在真机上编译即可通过。只有在模拟器上会有此问题出现。

你可能感兴趣的:(iOS)