ios – 通过USB以编程方式模拟iPhone(实际设备,而不是模拟器)位置

我可以通过准备一个GPX文件,通过 Xcode来模拟位置,将其添加到我的项目中,运行应用程序,并在应用运行时选择位置.然后,我的整个iPhone的位置被改变到那个位置(不只是那个应用程序).

换句话说,当使用Xcode通过USB连接时,可以通过Mac控制iPhone的位置.

我想知道有没有办法自动化这个行为?例如,我将以编程方式将命令发送到我的iPhone来改变它的位置,而不需要手动创建一个GPX文件,将它添加到项目中,运行一个虚拟应用程序,并且每次从UI中选择一个GPX.有没有办法,也许使用命令行工具?

解决方法

您可以使用仪器来模拟位置更新:

通过自动化它允许使用javascript编写脚本,这将设置位置和延迟下一个位置更新.

其实,简单的设置位置将如下所示:

var target = UIATarget.localTarget();
var location = {
    latitude: 59.335435,longitude: 18.017269
};
var locationOptions = {
    speed: 2.78,altitude: 200,horizontalAccuracy: 10,verticalAccuracy: 15
};
target.setLocationWithOptions(location,locationOptions);

为了能够运行这个脚本,你需要从Xcode“配置”你的应用程序.对于菜单产品→配置文件,您的应用程序将与仪器一起开始.在仪器中选择“自动化”,然后创建如上所述的带有主体的新脚本.

您的应用程序应自动选择为自动化工具左上角的目标.

只需将脚本粘贴到脚本区域,然后按运行按钮.
如果应用程序未启动,它将启动.
然后脚本将运行,您应该看到该位置已在您的应用程序中设置.

您可以创建几个位置和位置选项的阵列,然后通过它们进入循环.要做一些延迟,你可以使用delay命令.

var target = UIATarget.localTarget();

var locationOptions = {speed:2.78,horizontalAccuracy:10,verticalAccuracy:15};
var locations = [
  {latitude: 59.335435,longitude: 18.017269},{latitude: 59.33618,longitude: 18.018288},{latitude: 59.337192,longitude: 18.01643},...
  {latitude: 59.335769,longitude: 18.025336} 
];

for (var i = 0; i < locations.length; i++) {
    target.setLocationWithOptions(locations[i],locationOptions);
    target.delay(10);
}

参考:http://sergiinezdolii.blogspot.com/2015/02/ios-simulate-frequent-gps-location.html

以上是来客网为你收集整理的ios – 通过USB以编程方式模拟iPhone(实际设备,而不是模拟器)位置全部内容,希望文章能够帮你解决ios – 通过USB以编程方式模拟iPhone(实际设备,而不是模拟器)位置所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。