清除 iPhone GPS 坐标缓存以测试较差的 GPS 条件?

问题描述 投票:0回答:2

一旦 iOS 设备获得 GPS 定位,它将将该坐标缓存相当长的一段时间,并在您向 CLLocationManager 发送 startUpdatingLocation 消息后立即返回该坐标。

这使得在较差的 GPS 条件下无法以远程可重现的方式测试 GPS 相关代码的行为。特别是,手机无法获取修复且从不调用 locationManager:didUpdateToLocation:fromLocation: 的场景根本无法测试。

关闭设备电源不会清除 GPS 缓存。

如何清除 GPS 缓存,从而在真实情况下为真实用户重复测试我的应用程序在较差的 GPS 场景下的行为?

iphone ios gps core-location
2个回答
1
投票

GPS 缓存可以在这里找到:/var/root/Library/Caches/locationd 您可以使用 iPhone ExplorerDiskAid for Mac 访问并删除该文件夹。

关于验证 GPS 数据的更大问题,您可能需要阅读检测不良核心位置数据。他提供了一种辅助方法来验证位置数据。祝你好运,希望这能帮到你。


0
投票

这让我深入研究如何停止/启动定位服务本身

如果您禁用 iPhone 上的位置服务(设置 -> 隐私和安全)然后重新启用它们,它将清除“/private/var/root/Library/Caches/locationd”处的缓存。然而,在我的 iOS (16.7.5) 上,这会导致指南针在打开时冻结,并且谷歌地图无法检测到我的位置,非常奇怪。我有iOS文件的备份,所以我测试了导致此问题的原因,结果发现如果清空以下文件夹就会出现问题:

/private/var/root/Library/Caches/locationd/tiles_cell/coarse-lte

如果我恢复该文件夹内的文件,它会解决此问题,并且指南针/谷歌地图应用程序将正常运行。看来只有我有这个问题了

您实际上不必停止定位服务。您可以简单地杀死可执行文件:

killall locationd

只要不请求定位服务,可执行文件就不会重新启动

© www.soinside.com 2019 - 2024. All rights reserved.