是否有任何编程方式来控制xcode > simulate location
命令?我有外部位置测试脚本我想运行,理想情况下,测试套件可能会导致xcode随意更改已连接手机的位置。
这是可能的,如果是这样的话?
答案 0 :(得分:7)
不确定它是否完全符合您的要求,但您可以通过在方案中进行设置,让不同的单元测试包使用不同的位置(或GPX文件)。
然后,您可以在每个捆绑包中进行单元测试,以测试您对该特定位置的需求。
xctool也可以使用-only选项在特定目标中运行单元测试:
path/to/xctool.sh \
-workspace YourWorkspace.xcworkspace \
-scheme YourScheme \
test -only SomeTestTarget
答案 1 :(得分:5)
有一个名为Pokemon-Go-Controller的GitHub项目正是您想要的。
解决方案概述:
gpx
文件gpx
文件并在您的设备上运行的空白项目update location
gpx
文件,设备位置将自动更新您可以使用此Apple脚本代替自动点击器:
#Will continue update the location to the location name below from Xcode:
property locationName : "pokemonLocation" #name of your gpx filex
###########################
tell application "System Events"
tell process "Xcode"
repeat while true
click menu item locationName of menu 1 of menu item "Simulate Location" of menu 1 of menu bar item "Debug" of menu bar 1
delay 0.2
end repeat
end tell
end tell
答案 2 :(得分:2)
是的,有可能。 1.按@InsertWittyName的答案或as described in this blog post中所述设置GPX文件。 2.使用Instruments使用不同的GPX文件在Simulator中运行您的应用程序。
我会写出整个过程,但someone more eloquent than myself already has。
作为狂热的S / O用户,我会失去基本上单链接的答案。所以这里有一些额外的奖励信息。
你一定要看看security testing your location aware features。今年我将参加Black Hat,所以如果你在那里,我们来谈谈吧!
看起来还有Apple Script解决方案,like this one。
我希望我至少提供了足够的信息,不仅仅是一个懒惰的链接答案。享受,祝你好运!
答案 3 :(得分:0)
idevicelocation是一个命令行工具,用于模拟ios设备中的地理位置。
用法:
$ idevicelocation [OPTIONS] LATITUDE LONGITUDE
设置通过两个参数的位置,纬度和经度:
$ idevicelocation 48.856614 2.3522219000000177
传递负值:
$ idevicelocation 77.432332 -- -7.008373564
停止位置模拟:
$ idevicelocation --stop
选项:
-d enable connection debug messages.<br/>
-u specify device UDID.<br/>
-h help.<br/>
-s stop location simulation on device.
它使用libimobiledevice库与进程com.apple.dt.simulatelocation进行通信,该进程也被Xcode在内部用于同一目的。
README文件中有构建说明。
确保在进入随机位置之前安装正确的开发人员图像。
感谢Angulo编写这个很棒的实用程序。
这个工具目前没有附带libimobiledevice软件包,尽管有Pull Request个问题已经搁置了很长时间。