Flutter应用iOS端Google Maps SDK从3.9.0.0升级至4.1.0.0不生效及地图异常求解
Google Maps iOS SDK 版本不生效、地图灰显实操排查步骤
- 先核查实际落地的SDK版本
改完Podfile写死pod 'GoogleMaps', '4.1.0.0'之后,光跑pod repo update根本不会把新依赖同步到项目里,得在项目根目录执行pod install --repo-update走完完整安装流程。
装完可以找个快捷方式验证版本:打开Pods/Target Support Files/Pods-[你的项目名]/Pods-[你的项目名].debug.xcconfig,搜GOOGLEMAPS_VERSION对应的值,要是还是3.9.0.0,说明旧版本的SDK根本没被替换,纯属安装流程走了一半。 - 排查依赖锁死的版本冲突
打开项目根目录的Podfile.lock,搜所有带GoogleMaps的条目,看看是不是别的依赖(比如GooglePlaces、第三方地图封装组件、其他Google系SDK)把GoogleMaps版本钉死在3.9.0了。这种情况就算你在Podfile里写了4.1.0.0,CocoaPods为了兼容依赖也会给你装回老版本。解决起来也简单,直接在Podfile的GoogleMaps那行加个强制版本声明,重新install就能绕开版本锁。 - 解决地图灰显的问题
现在地图能正常显示左下角Google logo、右下角定位按钮,但整个页面是灰的,跟SDK版本新旧一点关系都没有,本质就是地图瓦片根本没加载出来:- 检查App启动阶段的API Key配置,确认这个Key在Google后台已经开了Maps SDK for iOS的权限,别只开了定位服务、或者只开了Android版的地图权限
- 查API Key的应用限制规则,把你当前调试的App Bundle ID加进允许列表,没绑Bundle ID的Key会被服务端直接拒掉,不给返回地图瓦片
- 翻控制台的报错日志,鉴权不对的话SDK会直接输出
Auth failed类的明确报错,顺着报错改就行,不用盯着版本提示瞎找问题
- 清缓存解决版本一直不更新的问题
要是前面都做了还是跑3.9的老版本,就把项目里的Pods文件夹、Podfile.lock文件全删掉,再把本地CocoaPods缓存里存的GoogleMaps旧二进制包清干净,重新跑pod install就行,别让CocoaPods拿着几年前的老包一直给你装。
内容的提问来源于stack exchange,提问作者Finley Adams
相关产品推荐
相关产品推荐

