You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS Swift中Google Map点击位置后崩溃/冻结问题求助

解决iOS Swift Google Maps点击冻结/崩溃问题

你碰到的这个问题我之前帮不少开发者排查过,主要是两个报错点在搞事情:一个是Google Maps内部类的重复实现,另一个是缓存属性的转换器不安全。下面给你一步步的解决方案:

1. 彻底清理依赖与项目缓存

这类重复实现的报错,大概率是Pod依赖缓存或者Xcode衍生数据搞的鬼,先把这些清干净:

  • 打开终端,进入项目目录,依次执行这些命令:
    rm Podfile.lock
    pod deintegrate
    pod install
    
  • 清理Xcode的Derived Data:打开Xcode → 顶部菜单栏选择Xcode > Preferences > Locations,找到Derived Data那一行,点击右边的箭头打开文件夹,全选删除里面的内容;或者直接在终端跑:
    rm -rf ~/Library/Developer/Xcode/DerivedData
    
  • 重启模拟器,并且清除模拟器的内容与设置(模拟器顶部菜单Device > Erase All Content and Settings)

2. 统一并更新Google Maps SDK版本

版本不一致或者使用旧版SDK是常见诱因:

  • 打开你的Podfile,确保GoogleMaps(以及相关的GooglePlaces等库)使用最新稳定版本,比如:
    pod 'GoogleMaps', '~> 7.0'
    pod 'GooglePlaces', '~> 7.0'
    
    注意所有Google相关的库版本要保持一致,不要混用不同版本。
  • 执行pod update GoogleMaps强制更新到最新版,Google通常会在新版本里修复这类内部类冲突和缓存相关的bug。

3. 处理GMSCacheProperty的NSValueTransformer问题

这个报错要么是你自定义的转换器有问题,要么是SDK内部的bug:

  • 检查你自己的代码里,有没有针对GMSCacheProperty自定义过NSValueTransformer,如果有,确保它不会返回nil,并且是线程安全的。
  • 如果是SDK内部的问题,更新到最新版SDK后基本能解决;如果还是存在,可以尝试在App启动时(比如AppDelegate的didFinishLaunchingWithOptions里)添加一行代码清除相关缓存配置:
    UserDefaults.standard.removeObject(forKey: "GMSCacheProperty")
    

4. 关闭NSZombie调试模式

有时候开启Zombie Objects调试会触发这类重复实现的警告,进而导致崩溃:

  • 打开Xcode的Scheme设置(顶部菜单栏Product > Scheme > Edit Scheme),选择Run标签页,切换到Diagnostics面板,取消勾选Zombie Objects,然后重新运行项目。

5. 检查地图交互的代码逻辑

点击地图时的崩溃也可能是你的业务代码有问题:

  • 确保所有操作Google Maps UI的代码都在主线程执行,比如更新标记、调整地图视角等,用DispatchQueue.main.async包裹:
    DispatchQueue.main.async {
        // 这里写地图相关的UI操作
        self.mapView.addMarker(marker)
    }
    
  • 检查是否存在循环引用:比如地图的delegate设置成了当前ViewController,但没有用弱引用,导致内存泄漏。可以用Xcode的Memory Graph Debugger(调试栏里的箭头图标)检查内存情况。

如果以上步骤都试过还是不行,可以创建一个全新的测试项目,只引入GoogleMaps SDK,写最简单的点击地图逻辑,看是否能复现问题——如果测试项目没问题,那就是你现有项目的代码或者依赖冲突导致的,需要逐步排查引入的其他第三方库。

内容的提问来源于stack exchange,提问作者Vrujesh Modi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:56:06