Automatisieren des Befehls Xcode 'Debug Simulate Location

8

Gibt es eine programmatische Möglichkeit, den Befehl xcode > simulate location zu steuern? Ich habe externe Standorttestskripte, die ich gerne ausführen würde, und im Idealfall könnte die Testsuite dazu führen, dass xcode den Standort des verbundenen Telefons nach Belieben ändert.

Ist das möglich, und wenn ja, wie?

    
Stefan Kendall 21.07.2016, 01:58
quelle

4 Antworten

5

Es gibt ein GitHub-Projekt namens Pokemon-Go-Controller , das genau das tut, was Sie wollen.

>

Überblick über die Lösung:

  1. Erstellen Sie eine gpx -Datei
  2. Erstellen Sie eine leere Projektreferenzierung (nicht kopieren) dieser gpx -Datei und führen Sie sie auf Ihrem Gerät aus
  3. Run auto clicker, der konstant auf update location in Xcode
  4. klickt
  5. Aktualisieren Sie die Datei gpx mithilfe eines Skripts und der Speicherort des Geräts wird automatisch aktualisiert

Anstelle des automatischen Klickers können Sie dieses Apple Script verwenden:

%Vor%     
bzz 28.07.2016, 09:25
quelle
7

Nicht sicher, ob es genau das ist, wonach Sie suchen, aber Sie können verschiedene Unit-Test-Bundles verwenden, indem Sie verschiedene Positionen (oder GPX-Dateien) verwenden, indem Sie es im Schema einrichten.

Sie könnten dann Einheitentests in jedem Paket haben, die testen, was Sie in Bezug auf diesen bestimmten Ort benötigen.

xctool kann die Komponententests auch in einem bestimmten Ziel mit der Option -only ausführen:

%Vor%     
InsertWittyName 24.07.2016 13:50
quelle
2

Ja, das ist möglich. 1. Richten Sie die GPX-Dateien wie in @InsertWittyName's Antwort beschrieben ein oder wie in diesem Blogbeitrag beschrieben . 2. Verwenden Sie Instrumente, um Ihre App mit den verschiedenen GPX-Dateien im Simulator auszuführen.

Ich würde den gesamten Prozess aufschreiben, aber jemand, der eloquenter ist als ich selbst .

Als begeisterter S / O-Benutzer würde ich es bereuen, eine Antwort zu hinterlassen, die im Grunde nur aus einem Link besteht. Hier sind einige zusätzliche Bonusinformationen.

  1. Sie sollten sich auf jeden Fall mit Sicherheitsfunktionen vertraut machen, die Ihre standortspezifischen Funktionen testen . Ich werde dieses Jahr bei Black Hat sein, also wenn du da bist, lass uns darüber reden!

  2. Wenn Ihnen die zuvor erläuterte Antwort nicht gefällt, können Sie XCTest mit Code zum Simulieren verschiedener Standorte ( so ).

  3. Es sieht so aus, als gäbe es auch Apple Script-Lösungen, wie diese .

Ich hoffe, ich habe mindestens genug Informationen zur Verfügung gestellt, um mehr als nur eine faule Link-Only-Antwort zu sein. Viel Spaß und viel Glück!

    
Max von Hippel 28.07.2016 05:22
quelle
0

idevicelocation ist ein Befehlszeilen-Tool, um die Geolokalisierung in iOS-Geräten zu verspotten.

Verwendung:
$ idevicelocation [OPTIONS] LATITUDE LONGITUDE

Legen Sie den Ort fest, an dem zwei Argumente, Längen- und Breitengrad, übergeben werden:

$ idevicelocation 48.856614 2.3522219000000177

Übergeben negativer Werte:

$ idevicelocation 77.432332 -- -7.008373564

Standortsimulation stoppen:

$ idevicelocation --stop

Optionen:

-d enable connection debug messages.<br/> -u specify device UDID.<br/> -h help.<br/> -s stop location simulation on device.

Es verwendet libimobiledevice-Bibliothek, um mit dem Prozess com.apple.dt.simulatelocation zu kommunizieren, der auch von Xcode intern für den gleichen Zweck verwendet wird.
Build-Anweisungen gibt es in der README-Datei.
Stellen Sie sicher, das richtige Entwickler-Image vor dem zufälligen Orten zu mounten.
Danke an Angulo für das Schreiben dieses wunderbare Dienstprogramm Dieses Tool wird derzeit nicht mit libimobiledevice ausgeliefert, obwohl seit langem eine Pull-Anforderung aussteht.

    
itsrishre 05.02.2018 16:47
quelle

Tags und Links