gpt4 book ai didi

ios - 以编程方式通过 USB 模拟 iPhone(真实设备,而非模拟器)位置

转载 作者:技术小花猫 更新时间:2023-10-29 10:39:44 24 4
gpt4 key购买 nike

我可以通过 Xcode 模拟位置,方法是准备一个带有一些坐标的 GPX 文件,将其添加到我的项目中,运行一个应用程序,并在应用程序运行时选择位置。然后,我的整个 iPhone 的位置都更改为该位置(不仅仅是那个应用程序)。

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

我想知道有没有办法自动执行此行为?例如,我将以编程方式向我的 iPhone 发送命令以更改它的位置,而无需手动创建 GPX 文件、将其添加到项目、运行虚拟应用程序以及每次从 UI 中选择一个 GPX。有没有办法,也许使用命令行工具?

最佳答案

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

通过自动化它允许使用 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 中“分析”您的应用程序。为此,转到菜单产品 → 配置文件,您的应用程序将与 Instruments 一起启动。在 Instruments 中选择“Automation”,然后使用上面的 body 创建新脚本。

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

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

您可以只创建多个位置和位置选项的数组,然后循环遍历它们。要进行一些延迟,您可以使用 delay 命令。

var target = UIATarget.localTarget();

var locationOptions = {speed:2.78, altitude: 200, 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(真实设备,而非模拟器)位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38497777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com