2016-07-21 10 views
12

I Stelle durch Xcode durch Zubereiten einer GPX-Datei mit einigen Koordinaten simulieren kann, um es zu meinem Projekt hinzufügen, eine App verwendet, und wählen Sie den Speicherort, wenn die Anwendung ausgeführt wird . Dann wird der Standort meines gesamten iPhones an diesen Ort geändert (nicht nur für diese App).Simulieren iPhone (real Gerät, nicht Simulator) Lage über USB programmatisch

Mit anderen Worten, es ist ist möglich, iPhone Standort über einen Mac zu steuern, wenn es über USB mit Xcode verbunden ist.

Ich frage mich, ist es eine Möglichkeit, dieses Verhalten zu automatisieren? Zum Beispiel werde ich den Befehl programmgesteuert an mein iPhone senden, um den Standort zu ändern, ohne manuell eine GPX-Datei zu erstellen, sie zu einem Projekt hinzuzufügen, eine Dummy-App auszuführen und jedes Mal einen einzelnen GPX über die Benutzeroberfläche auszuwählen. Gibt es einen Weg, vielleicht mit Befehlszeilen-Tools?

+0

Sind Sie sich bewusst, dass Sie eine Standard simuliert Lage im Schema-Manager festlegen können, einschließlich mit einem benutzerdefinierten GPX-Datei? – markedwardmurray

+0

@markedwardmurray hast du die Frage gelesen? natürlich weiß ich das. Ich brauche eine schnelle und automatisierte Möglichkeit, dies zu tun, das ist die ganze Frage :) –

+1

Ich dachte, aber nur zu überprüfen :) Es schien mir, als wäre es möglich, Sie die simulierte Position aus dem Debug-Fenster nach dem Start der Anwendung. Ich weiß nicht, wie ich das von der Kommandozeile aus machen kann, aber ich bin neugierig, diesem Thema zu folgen. – markedwardmurray

Antwort

0

Sie können eine vordefinierte Route mit der folgenden Website einrichten; GPX Generator. Dies erstellt eine GPX-Datei mit einer Route in schneller Lauf-/Laufgeschwindigkeit. Eine automatisiertere Methode scheint meiner eigenen Forschung zufolge unmöglich.

+0

Ja, ich weiß es, aber leider ist es nicht das, was ich brauche, da ich ständig etwas programmierbares Programm brauche. –

2

Sie können Instrumente verwenden Standortaktualisierungen zu simulieren:

Via Automation Es ermöglicht Skript mit Hilfe von JavaScript zu schreiben, die Lage und Verzögerung nächsten Standortaktualisierung eingestellt wird.

Eigentlich wird einfache Einstellung Lage wie folgt aussehen:

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); 

Zur Anzeige dieses Skript auszuführen, müssen Sie Ihre Anwendung von Xcode „Profil“. Gehen Sie dazu zu Menü Produkt → Profil und Ihre Anwendung wird neben Instrumenten gestartet. In Instruments wählen Sie "Automation" und erstellen Sie dann ein neues Skript mit Körper wie oben.

Ihre Anwendung automatisch als Ziel sollte in oben links Automation Tool ausgewählt.

Fügen Sie einfach Skript in den Skriptbereich ein und drücken Sie die Run-Taste. Wenn die App nicht gestartet wurde, wird sie gestartet. Dann wird Skript ausgeführt und Sie sollten sehen, dass der Standort in Ihrer App festgelegt wurde.

Sie können nur Array von mehreren Standorten und Optionen erstellen und dann in der Schleife durch sie gehen. Um Verzögerungen zu vermeiden, können Sie einfach den Verzögerungsbefehl verwenden.

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); 
} 

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

Verwandte Themen