美文网首页
升级XCode10后'BaiduMapAPI_Location/

升级XCode10后'BaiduMapAPI_Location/

作者: 咚铃铛儿 | 来源:发表于2019-01-10 18:06 被阅读0次

    最近升级了xcode10后,利用cocopods更新第三方库,莫名百度地图报错:BaiduMapAPI_Location/BMKLocationComponent.h' file not found。

    仔细研究了一下百度地图开放平台:

    新版本除了MapKit还需要集成定位BMKLocationKit框架!!!

    之所以BaiduMapAPI_Location库找不到的原因是:百度地图把定位功能划分到另外一个第三方库BMKLocationKit里面去了,新的BaiduMapKit库里面没有location项了。解决方案如下:

    1.除了集成’BaiduMapKit‘以外,还需要集成”BMKLocationKit“框架,重新修改代码,重新集成新版本定位;

    2.找回老版本的(同时包含地图和定位功能)的”BaiduMapKit“低版本库,不用修改代码;

    个人建议:我的项目只用到了基本的地图和定位功能以及少量的小红点功能,不是很想修改代码,只想正常编译运行,这种情况我选择方案2;至于项目里大批量运用到地图这块,还是建议,根据开发者文档,重新集成BMKLocationKit才是长远之计;

    方案1这里不做细讲,具体参考:百度地图开发者iOS文档中心;

    方案2爬坑流程:1.打开你的Podfile文件,直接删除BaiduMapKit项目,重新pod init ,这样就可以先删除你的最新版本的MapKit;

                                2.重新打开Podfile文件,重新添加:  pod 'BaiduMapKit','~>2.10.2' #百度地图SDK,再重新pod init一下,重新安装你的旧版本2.10.2的BaiduMapKit,安装完成后,你会看到如下:

    2.10.2版本的location库

    此时记得command+shift+k,clean下xcode,新的xcode10在缓存有点坑,还是清理下,再重新编译,找不到的文件没问题了,此时,又有新问题如下:

    error:Multiple commands produce ‘xxxx/xxx.app’

    1)Target ‘xx’ has create directory command with output ‘xxxxxxx'

    2)That command depends on command in Target ‘xxx’:scrpit phase"[CP] Copy Pods Resources"

    看了有的博客说是因为pod版本问题,个人认为:此处跟pod版本无关,只是xcode10的编译机制发生了改变,CocoaPods会有Script将用到的资源copy到专案下,这里xcode10不需要这么多此一举,解决方案如下

    删除outputFiles下不需要的配置

    删除-clean-build -> build success!!!!

    相关文章

      网友评论

          本文标题:升级XCode10后'BaiduMapAPI_Location/

          本文链接:https://www.haomeiwen.com/subject/ovrarqtx.html