在iOS模拟器中模拟GPS位置更新

2,647 阅读2分钟

有时,在构建iOS应用时,您需要模拟四处移动。举例来说,假设您创建了一个应用,该应用允许用户在地图上绘制其运动。将您的iOS设备连接到Xcode来调试代码将很困难。

幸运的是,iOS模拟器可以模拟位置更改,就像用户进行城市行驶或自由行车一样。

模拟库比蒂诺附近的城市

在iOS模拟器上构建并运行您的应用,然后选择菜单项功能/位置/城市运行

模拟器可以提供位置更新,就好像设备会在库比蒂诺(Cupertino)周围的城市中移动一样。但有时您需要更多。

模拟特定路径

如果需要模拟特定路径,则可以将gpx文件添加到项目中,并在模拟器中运行应用程序时在Xcode中选择该文件。这样的gpx文件可能如下所示:

<?xml version="1.0"?>
<gpx version="1.1" creator="GPXRouteCreator">
  <wpt lat="51.24254280000747" lon="6.769857406333074">
    <time>2020-02-28T09:12:35Z</time>
  </wpt>
  <wpt lat="51.24262905838532" lon="6.76984702684905">
    <time>2020-02-28T09:12:37Z</time>
  </wpt>
</gpx>

此gpx文件中的每个点都定义了一个纬度和经度以及一个可选时间。当使用带有时间值的gpx文件时,模拟器将使用这些点之间的时间差来模拟运动。两点之间的时间差越短,模拟运动就越快。

将gpx文件添加到项目中,然后在模拟器上运行您的应用。在Xcode的调试栏中,单击位置图标,然后选择添加到项目中的文件。在此示例中,我将文件命名为track.gpx

当模拟器到达gpx文件中的最后一点时,它将再次从头开始。

创建GPX文件

您可以编写自己需要的gpx文件,也可以使用我为自己的需要构建的开源应用程序。它是一个SwiftUI Catalyst应用程序,因此存在一些粗糙的地方。但是它可以创建gpx文件。

Github上查看我的开源代码。