在iOS中模拟位置

有时,WillowTree的任务是使用我们的移动应用程序跟踪位置。 这使我们能够执行各种操作,例如根据您所在的位置动态更改内容或跟踪远足或跑步的路线。 这在测试中可能是一个挑战,尽管我们可以并且确实要进行一次实际的跑步或开车检查以确保我们准确地更新了位置,但是这可能会花费很多时间,并且仅限于我们的本地区域。 为了节省时间或检查产品在远程位置的工作方式,我们可以模拟位置。 我们使用Xcode做到这一点。 尽管还有其他方法,但是Xcode不需要擦除设备,并且可以与最新版本的iOS一起使用。 以下步骤假定您有一个在Mac上从Xcode运行的现有项目。 尽管您可以使用Simulator轻松设置位置,但Xcode提供了功能更强大的工具,用于设置自定义位置,甚至模拟运动。 在这里,我们将逐步介绍每个选项。

  • 在模拟器中运行应用程序后,导航至菜单中的“调试”→“位置”。
  • 除了“自定义位置”外,Apple还为您提供库比蒂诺及其周边地区的4条默认位置/路线,您可以在其中手动输入纬度和经度。
  • 有很多地方可以获取经度和纬度,其中最容易识别的就是Google地图。
  • 要从Google地图获取纬度和经度,只需在您要获取信息的位置单击地图
  • 您将在屏幕底部看到以下内容:
  • 这里的纬度是38.029401,而经度是-78.478768。 这些可以复制到上面的对话框中。

在构建之前在方案中设置位置:

  • 在打开项目并连接设备的Xcode中,导航至“产品”→“方案”→“编辑方案”
  • 在左侧选择“运行”的情况下,在右侧选择“选项”选项卡
  • 选中允许位置模拟(注意:仅在连接设备后才会显示)。 您现在可以模拟自己的位置

设置从Xcode运行应用程序时要使用的默认位置

  • 点击默认位置旁边的下拉菜单,然后选择所需的任何位置
  • 下次运行该应用程序时,它将使用您选择的任何内容

在构建运行之后设置位置(必须在Scheme中启用“允许位置模拟”):

  • 导航到“调试”→“模拟位置”,然后在列表中选择任何位置。 设备应立即开始使用该位置

设备或模拟器现在应显示为您选择的位置。 使用新位置运行应用程序后,您可能需要打开“地图”应用程序以强制系统更新位置。 在方案中设置位置或运行应用程序后,您可能已经注意到,将GPX文件添加到工作区的选项…内置位置很有用,但有时您要检查设备上的特定位置。 假设您要显示有关不在任何默认城市中的本地橄榄球队的用户信息。 为此,您需要一个自定义GPX文件。 获取GPX文件GPX文件使用纬度和经度来指定位置,首先需要找到此数据。 请参阅上文,以获取从Google地图获取此内容的快速方法。 接下来,您将需要创建GPX文件。您可以使用Xcode创建GPX文件。在Xcode中,导航至File→New→File…。这将为您提供选择模板的选项。GPX模板应位于macOS下,您可能会按“ gpx”过滤,您应该会看到该选项,选择并单击“ 下一步”

下一个对话框允许您指定位置和名称等。创建后,其中将填充Cupertino的位置数据和一些有用的提示。 您可以输入所需的纬度和经度来代替默认值。 您也可以手动创建GPX文件,GPX文件只是扩展名为.gpx的文本文件。 以下示例将您的设备放置在洛杉矶。

      

现在您有了一个GPX文件! 在运行之前在方案中选择它,或者在设备上运行该应用程序时在菜单中选择它。 最后一个选项是模拟运动。 这是一个功能强大的工具,可用于跟踪远足或奔跑等路线,或者通常跟踪用户的速度。 为此,您将需要一个包含多个点的GPX文件。 如果使用Xcode创建了GPX文件,则将看到以下内容:(可选)为每个航路点提供时间元素。 Xcode将根据每个航路点之间经过的时间以一定速度插入运动。 如果不提供时间元素,则Xcode将使用固定的速度。 航点必须按时间升序排列。 按照上述步骤,我创建了一个GPX文件,以便在Charlottesville进行很短的步行。

     TP001   139.36167907715   2017-05-18T12:20:25Z     TP002   139.58670043945   2017-05-18T12:20:37Z     TP003   139.79161071777   2017-05-18T12:20:39Z     TP004   139.78443908691   2017-05-18T12:21:14Z     TP005   138.47015380859   2017-05-18T12:21:22Z     TP006   137.04736328125   2017-05-18T12:21:37Z     TP007   136.67156982422   2017-05-18T12:21:40Z     TP008   137.19146728516   2017-05-18T12:21:51Z     TP009   139.01919555664   2017-05-18T12:23:04Z     TP010   140.29809570312   2017-05-18T12:23:22Z     TP011   140.81834411621   2017-05-18T12:23:55Z     TP012   145.85939025879   2017-05-18T12:24:19Z     TP013   144.88935852051   2017-05-18T12:24:25Z    

您会看到还有Xcode生成的注释未提及的其他标签( )。 目前Xcode会忽略这些标签(对不起,神奇宝贝Go spoofers!)。

有许多工具可以轻松创建大型GPX文件。 我最喜欢的是mapstogpx,它将根据Google地图的方向生成GPX文件。 如果您使用其他工具,则可能会遇到骑自行车的人使用标签的流行格式。 通常,可以通过查找和替换和/或正则表达式将其轻松转换为使用Xcode。

断开设备或模拟器的连接后,它可能仍会使用模拟的位置。 如果这是一个问题,则可以重新启动设备或在设备设置中使用“重置内容和设置”。


最初发布于 willowtreeapps.com