Frage

Ich plane, ein Spiel aus, dass mehrere Benutzer erfordert, und ich frage mich, ob eine Art und Weise gibt es mehrere Instanzen des iPhone Simulator zu feuern. Ich habe nichts in Menüs sehen oder in der Google-Suchergebnissen, aber ich wollte nur sicherstellen, dass ich nichts fehlte.

War es hilfreich?

Lösung

So nahe, wie ich sagen kann, kann man nicht nur nicht mehrere Instanzen des Simulators läuft, aber wenn die Zeit für die eigentliche Gerät kommt Testen Sie können nicht mehrere Instanzen des Debuggers entweder ausgeführt haben.

Das bedeutet, Multi-Device-Anwendungen zu tun, werden Sie ein einzelner Mac zugewiesen einer einzigen iPhone / Touch-Gerät (oder Simulator-Instanz) jeder läuft Ihre Anwendung haben müssen.

ich angefangen habe, schaut in, ob VMWare oder Parallels kann irgendwie in diese gebracht werden, aber es gibt nicht viel, das ohne Hacking das Betriebssystem ausgeführt werden kann.

Ich schlage vor, die Einreichung einer Feature-Anfrage mit http://bugreporter.apple.com .

Andere Tipps

Es ist möglich, aber nur mit mehreren Benutzern.

Lesen Sie diese: http://www.coderebel.com/2010/08/31 / iphone_simulator

Angenommen, Sie haben zwei Projekte (P1, P2), die Sie gleichzeitig debuggen wollen, gehen Sie wie folgt vor.

Schritte zum Einrichten:

  1. Erstellen Sie einen neuen Benutzer (U2) auf dem Mac
  2. Geben Sie ihm R / W Zugriff auf P2, vor allem auf seine Build-Ordner.
  3. Laden Sie die App Launcher von der Website oben und kopieren Sie sie in Anwendungen.

Schritte zum Debug:

  1. Schließen Xcode und der Simulator, wenn läuft
  2. Starten Sie das iPhone Launcher.app mit U1.
  3. Start Xcode mit U1, Last P1, starten Sie das Debuggen.
  4. Starten Sie das iPhone Launcher.app mit U2.
  5. Start Xcode mit U2, Last P2, starten Sie das Debuggen.

Leider ist es ein P.I.T.A. Benutzer mit und dann alle jetzt ändern, aber bisher habe ich keine bessere Lösung gefunden. Hoffe, das hilft.

Es gibt eine Möglichkeit, dies ohne die Verwendung von mehreren Benutzern leicht zu tun. Denken Sie daran, Sie werden nicht jedoch an den Debugger angeschlossen werden. Denken Sie daran, unten ist die Erklärung für XCode 6 + . Sie können diese Erklärung überspringen und scrollen Sie einfach unten auf den Wickel-it-up Abschnitt weiter unten.

Aus einer Antwort hier können wir sehen, dass Sie jeden Simulator von der Kommandozeile starten können:

  

open -a "iOS Simulator" --args -CurrentDeviceUDID

Sie können die deviceID (wie auch alle Simulatoren) finden, indem Sie auf Konsole, um den xcrun simctl list Befehl ausgeführt wird. Es wird eine Liste wie diese erzeugt. Die Geräte-ID ist der Code in Klammern:

== Runtimes ==
iOS 8.3 (8.3 - 12F69) (com.apple.CoreSimulator.SimRuntime.iOS-8-3)
== Devices ==
-- iOS 8.3 --
    iPhone 4s (99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8) (Shutdown)
    iPhone 5 (K262AF11-ADD2-4FDA-ACBA-8C80DD9D4AA1) (Shutdown)
    iPhone 5s (337KDC51-0A4B-47DB-8966-83562FD92C93) (Shutdown)
    iPhone 6 Plus (9GK714E2-F713-4F98-A96E-C72ACD6571A8) (Shutdown)
-- iOS 8.2 --
    etc continued....

Deshalb den Simulator unter Verwendung der oben als Beispiel auszuführen, diesen Befehl auf der Konsole ausführen:

open -n /Applications/Xcode.app/Contents/Developer/Applications/iOS\ Simulator.app/ --args -CurrentDeviceUDID '99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8'

Wir verwenden die -n Flagge statt, da die -a Flagge die Anwendung an, die für das Öffnen der Datei zu verwenden, während die -n Flagge eine neue Instanz der Anwendung öffnet (n) auch wenn man bereits läuft. Verwenden Sie den Befehl man open all dieses Zeug zu kennen.

Auch stellen Sie sicher, dass Sie den richtigen Pfad für Ihren Simulator haben.

Eine weitere Sache zu beachten, wenn Sie den Simulator wie folgt ausführen, stehen die Chancen, dass Sie beschränkt Simulatoren haben. Und da sein beschränkt, möchten Sie vielleicht, es zu starten, ohne eine Unterbrechung, die bereits auf dem Bildschirm ist. Wir können dieses Problem lösen von dieser Antwort hier wo er zeigt, wie Sie create a new simulator and delete one.

So sie alle auf Einwickeln, hier ist was Sie tun, um sie zu starten.

A) zunächst einen Simulator erstellen, bevor es zu starten.

Verbrauch: simctl erstellen "name" "Gerätetyp-ID" "runtime id"

xcrun simctl create "mynewsimulator" "iPhone 6" "com.apple.CoreSimulator.SimRuntime.iOS-8-3"

Sie werden die Runtime-ID aus dem Befehl xcrun simctl list Befehl finde ich oben lief. Nachdem der obige Befehl ausgeführt wird, wird die deviceID auf der Konsole siebgedruckt werden. Beachten Sie, wie Sie als letztes Argument benötigt, den Simulator gezeigt unten zu starten. Nehmen wir an, wurde dieser ID 99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8

B) starten Sie es

open -n /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/ --args -CurrentDeviceUDID '99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8'

C) löschen Sie es, wenn Sie mit Ihrem Simulator fertig sind

xcrun simctl delete 99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8

All dies kann in einer einzigen .sh-Datei zum einfachen Betrieb gesetzt werden. Bitte beachten Sie wait oder sleep Befehle nach jedem Befehl zu setzen, wenn Sie all dies in eine sh-Datei setzen sich entscheiden.

[EDIT 2017] Ich sehe, dass XCode 9 wird nun mehrere Simulatoren unterstützen. In Erwartung zu sehen, wie es wird funktionieren.

Ein weitere Option (wenn auch wahrscheinlich übertrieben), wenn Sie einen Mac OS X-Server-Lizenz ist eine Instanz von Mac OS X Server virtualisieren und einen zweiten Simulator in der VM ausgeführt werden.

Hmm ... Ich glaube nicht, dass du hier etwas fehlen. Soweit ich weiß, gibt es keine Technologie innerhalb des SDK, das mehrere Geräte zu emulieren ist in der Lage - aber, dass eine nützliche Funktion zu haben wäre. Ich denke, Ihre einzigen Optionen ein zweites iPhone OS-Gerät zu bekommen wären, oder einen Freund bekommen, der auch ein iPhone OS-Gerät hat, lassen Sie es zum Testen verwenden.

In XCode 4 Sie können mehrere Instanzen ausführen, während beide im Debug-Modus sein müssen.

Was ich tat, war ein Duplikat meines Ziels erstellen und lief sowohl das Original und das Duplikat. Wenn Sie das Ausgabefenster verwenden können Sie festlegen, welche Ausgabe Sie suchen auf.

Befolgen Sie diese Schritte Ihre App zu testen.

Sie müssen eine Sache für den ganzen Prozess tun: Zum Projekt -> Projekteinstellungen bearbeiten -> auf Option tick -. Erstellen Sie unabhängige Ziele parallel

  1. Debug-Code, der Ihre Anwendung in Simulator zum Beispiel Ihres Namen des App schaffen ist - Instanz
  2. Schließen Simulator
  3. Zum Project-> New Target -> Instance2 Add "Bundle-Anzeigename: Instance2" in Instance2.info.plist Datei Set Executable Name: Instance2 Wählen Sie Instance2 Target -> Zum Projekt -> Set Active Target -> Instance2 Bauen Sie mit Instance2

Hinweis: Haben alle sorgfältig sonst haben Sie Ihren Simulator zurückgesetzt Für Reset-Simulator -> Ausführen Simulator -> iPhone Simulator -> Zurücksetzen Content & Einstellungen ...

Jetzt haben Sie zwei Anwendungen in Simulator und Sie können auf alle Instanz App testen.

Hoffe, es wird Ihnen helfen:)

ich es geschafft, um es Antwort Kombination von Ivsty mit dieses .

Im Grunde, was Sie tun, ist zwei Benutzer erstellen (A und B), führen Simulatoren in jedem von ihnen, laufen VNC-Server auf Benutzer B, und schließen Sie dann vom Benutzer A Zugang Bildschirm B ohne den Benutzer wechseln zu müssen.

Unterstützt von Xcode 9 auf.

(Quelle: WWDC 2017)

Ja, jetzt ist es möglich und ist auch recht einfach. Das einzige, was Sie brauchen ist, die Build-Tools von Facebook und einem Rubin gem xctool. Der Rubin Edelstein hilft, den Simulator während des Tests.

, die zum Erstellen / zerstören

Sie können die vollständige Dokumentation zu diesem Link lesen:

https://github.com/plu/parallel_ios_tests

Ich verwende diesen Ansatz und ich betreibe meine Test auf 4 iOS-Simulator auf der gleichen Zeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top