重新使用Xcode模拟位置

早在2013年,我写了一篇有关使用Xcode模拟位置的文章。 在2016年,Apple改进了这些工具,以使模拟位置变得更加容易且不易出错。 让我们看一下Apple对开发工具的增强功能以​​及已解决的问题。

GPX文件和Xcode

Xcode使用标准化的文件类型来模拟位置。 GPX规范概述了定义路径或地理定位坐标集的许多不同方法。 Xcode仅使用标记,因此,如果找到一个生成基于或的GPX文件的工具,Xcode将无法正确模拟您的位置。

Xcode将像通过一条路线一样通过一系列标签运行,但是它没有提供任何机制来控制航路点列表中每个条目的速度或时间量。 可以在以下示例中找到GPX文件的示例,该文件模拟WWDC与会者朝库比蒂诺的朝圣(我希望他们会游泳):

   


Moscone


Cupertino

采购GPX文件

除非您希望将多个航路点串在一起以模拟用户驾驶,否则Xcode可以为您提供模拟位置的大部分方法。 在“ 新建文件”表中,“资源”部分下现在提供了创建GPX文件的选项。

生成的默认GPX文件自动设置为Cupertino。 将lat和lon属性修改为新的静态位置,即可开始使用。

配置项目

配置项目以模拟位置非常简单。 将GPX文件添加到项目后,可以在项目的方案编辑器或Xcode的调试区域中启用位置模拟。

通过导航到菜单栏中的产品->方案->编辑方案,打开项目的方案编辑器。 在方案的“运行”操作中,选择“选项”选项卡。 您应该看到类似以下内容:

另一个选择是在应用程序运行时对其进行调整。 在应用程序运行时,通过导航至菜单栏中的“视图”->“调试区域”->“显示调试区域”,打开“调试区域”(如果尚未打开)。 在“调试跳转栏”中,您将在“调试视图层次结构”按钮旁边看到导航图标。 单击它会显示类似于以下的视图:

最后一种模拟位置的方法仅适用于iOS Simulator。 导航至iOS Simulator菜单栏中的Debug-> Location会弹出一些选项,用于模拟静态位置(Apple或Custom Location)或模拟用户骑自行车,跑步或驾驶。 通过“自定义位置”选项,您可以输入静态的纬度和经度:

移动设备的模拟都在Cupertino区域中,因此,如果您需要模拟其他内容,则可以对多个标签进行拍摄。

最后说明

Apple修复的最大错误是模拟设备上的位置。 仅在调试器运行时模拟位置。 停止调试器会将位置服务的控制权返回给iOS设备上的相应无线电和传感器。