这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战
前言
这篇文章是接着个人信息保护法颁布了,App的高德SDK整改之后的。
主要还是处理自己App的业务Bug为主,大家就随便看看
正当我舒了一口气将高德地图SDK整改完毕之后,打包给测试之后,还没过一会,测试就反馈过来了:
一打开App就有惊喜!!!地图的样式和以前不一样了!!!
高德地图SDK整改前 | 高德地图SDK整改后 |
---|---|
我当时看到就纳闷了,我就升级个高德地图SDK,怎么连地图的风格也改了?
分析Bug
因为这个项目我也是半路接手,对于一些业务并不熟悉,所以我先找需求、测试还有安卓的同事确认了下面几个事情:
-
我们App的地图风格是暗色系的吗?
需求答复:是的,一直都是和App的风格相近,是暗色系的。
-
线上App是好的吗?
测试答复:线上App地图风格是好的,这个Bug只存在与升级了高德地图之后,我甚至去下载了没有升级高德地图SDK的测试版本,发现没有问题。
-
安卓端的App升级高德地图后有一样的问题吗?
安卓同事:目前没有发现异常。
通过上面的询问,我基本上确认了高德地图SDK升级,导致了此次Bug的出现。
定位问题
于是我马上去代码查看涉及自定义高德地图的代码,不一会儿就找到了:
/// 地图样式
NSString *path = [NSString stringWithFormat:@"%@/style.data", [NSBundle mainBundle].bundlePath];
NSData *data = [NSData dataWithContentsOfFile:path];
NSString *extraPath = [NSString stringWithFormat:@"%@/style_extra.data", [NSBundle mainBundle].bundlePath];
NSData *extraData = [NSData dataWithContentsOfFile:extraPath];
MAMapCustomStyleOptions *options = [[MAMapCustomStyleOptions alloc] init];
options.styleData = data;
options.styleExtraData = extraData;
[self.myMapView setCustomMapStyleOptions:options];
[self.myMapView setCustomMapStyleEnabled:YES];
复制代码
从本地读取了style.data
和style_extra.data
,作为配置项,然后再到地图中使用。
我立马做了两项检查:
-
这两个文件还在项目中吗?
在项目中。
-
这两个文件在Git中的变更记录是什么情况?
最近一年没有更改,本次升级应该没有对这个两个文件做变更,亦没有人为改动。
既然这样,我所幸去高德地图SDK文档去查一查setCustomMapStyleOptions
这个API吧
这不查不知道,一查吓一跳。
总体而言这次地图样式异常原因找到了:
高德地图SDK升级跨度过大,以前的高德地图SDK版本非常的老,这次直接升级到8.1.0之后,旧的style.data
和style_extra.data
已经无法在新版SDK中使用。
解决问题
找到问题之后,解决起来就简单了:
- 去网站选择地图样式:
- 下载新的样式文件:
- 在工程中删除之前的
style.data
和style_extra.data
文件,使用本次下载的样式文件。
问题就解决了!!!
参考文档
iOS_Map_Doc/AMap_iOS_API_Doc_3D
总结
这是一个涉及高德地图SDK升级而引发的Bug,也只能算是一点经验,这里只是记录一下自己排查的前前后后。