XCode/iOS模拟器:手动触发重要的位置更改

Nic*_*ick 75 iphone core-location cllocationmanager ios

有没有办法手动告诉设备发送重要的位置变更通知,该通知会唤醒为此通知注册的任何应用程序?这仅用于测试,我意识到这个私有API调用在提交到应用商店时会被拒绝.

Mag*_*eth 189

所以有两个答案:

A)搭乘火车:-)

B)使用模拟器.在iOS 5.x模拟器中,有一个具有位置子菜单的调试菜单.选择高速公路驾驶.这将启动模拟器,沿着加利福尼亚州北部风景秀丽的280号进行假想.它为您提供除视图之外的所有内容:您的应用程序将获得重要的位置更改更新,并且如果已暂停,也将在后台启动.

要验证您确实在移动,请在模拟器中启动safari,然后转到maps.google.com并单击"跟踪我的位置"按钮.你应该感动.

真棒!现在如何调试系统启动的生命周期问题?简单!让xCode等待您的应用程序启动以开始调试.从Scheme菜单中,选择edit scheme.在"运行方案"和"信息"选项卡中,对于"启动"设置,请选择:" 等待My.app启动 ".

在模拟器中运行您的应用程序一次,以便它开始监视位置更新,然后强制退出它,以便它被暂停. 在应用程序中添加断点并完成启动功能,然后等待.一旦你的模拟器已经走得足够远,你的应用程序就会被唤醒,你的断点被击中,而你就是钱.

但真的,乘坐火车更有趣.

  • iOS9.3 + xCode 7.3更新:这个方法就像一个魅力!(注意:请务必正确处理requestAlwaysAuthorization()+相应的info.plst键).另外,设置distanceFilter = 500使我每隔30-40秒(有时甚至~15秒)接收位置更新;) (3认同)
  • 有人在iOS 6.X模拟器上试过吗?无法让它工作. (2认同)
  • 对我来说,iOS 6.1 SIM和XCode 4.6也没有运气. (2认同)

Chr*_*ris 18

好吧,我发现我可以通过切换飞机模式和/或WiFi来实现这一点.也许在飞行模式下使用设备启动应用程序,然后关闭应用程序并关闭飞行模式.这将打开GPS并强制分派位置更新.