含地图的项目几个项目合并所遇问题

问题详情:

1.停留在启动页不进主页
2.主页执行viewDidLoad不执行viewWillAppear
3.所有按钮不能点击
4.无法捕获视图层级结构

描述:

  公司四个App需要合并成一个,其中一个App有地图的功能,合并完成后运行有地图功能的那部分App发现:运行后一直停留在启动页(问题1),在地图功能的Controller里viewDidLoad方法里面添加断点,发现代码执行到[self.view addSubview:self.mapView];后面的就不执行了,viewWillAppear方法也不执行(问题2)。
  然后我就把添加地图的代码注释了,然后继续运行App发现能进主页了,但是又出现个问题:页面上所有按钮都不能点击,tabbar也不能点击(问题3)。我就想查打开视图层级结构看下是否有视图挡住了或者超出父视图范围了,但是点击层级结构按钮后一直不显示,最后报错“Unable to Capture View Hierarchy。Check the console log for additional information.”(问题4)。

QQ20200423-0.png

解决过程:

  然后我在https://www.jianshu.com/p/5d8a941456c3受到启发:可能是某行代码有错误。
  那就一行一行找呗:我把viewDidLoad方法里面的代码每次只留一行,然后运行App,发现只运行网络请求的代码时层级结构不能查看,单独运行其他行代码都能查看。
  再去网络请求里面查看:发现请求到数据后,会对地图进行操作,但是上面为了解决不能进主页的问题,我把地图隐藏了,很可能就是这部分导致的。为了验证我把请求到数据后什么操作都不执行,然后再次运行App,发现层级结构也能看了、按钮也能点击了。
  此时问题3、问题4解决了,再运行问题1、问题2还是存在。然后我突然灵光一闪:是不是Bundle id改变了导致地图不能成功加载完成?我修改了Bundle id然后再次运行,发现还是存在那俩问题,既然Bundle id和之前的不一致,那AppDelegate里面初始化地图的时候设置的Key是不是也不一致?然后就在AppDelegate里面发现问题所在了:地图的初始化代码忘了设置了!
  添加上地图的初始化代码,再次运行:完美解决问题1和问题2.

吐槽一下:

  百度地图没有在AppDelegate里面写初始化设置的代码,而导致一直停留在启动页就很坑啊,控制台连个错误也不报,这两者从表面上看一点联系都没有啊,要是给点提示也不至于后面出现4个问题这么多...

辣鸡百度,确实不如高德好用.

你可能感兴趣的:(含地图的项目几个项目合并所遇问题)