2016-08-03 20 views
3

In Android kann ich einen Emulator mit android create avd und alle Eigenschaften, die ich haben möchte. Gibt es eine Möglichkeit, dies in MacOs/Xcode über Befehle zu tun oder kann ich nur die eingebauten Simulatoren von xcode adressieren? Falls nicht, gibt es eine Möglichkeit, einen Simulator mehrere Male in MAcOs zu starten?Kann ich einen iOS-Simulator programmatisch auf Anfrage wie in Android (Emulator) erstellen

Hintergrund ist automatisiertes Testen und Erstellen einer Umgebung nach Bedarf. Um es noch klarer zu sagen: Es ist ein Cluster von Geräten (Simulator/Emulator) erforderlich, um Tests parallel auszuführen. Also muss ich wissen, ob es eine Möglichkeit gibt, mehrere Simulatoren laufen zu lassen, egal welche Instanz ich brauche. Also wenn ich "iPhone 6" testen möchte, muss ich 10 Instanzen haben, um meine Tests parallel zu führen, um ein schnelles Feedback in einem agilen kontinuierlichen Lieferungshintergrund zu bekommen.

Ich habe nichts im Internet gefunden, also denke ich, die Antwort ist Nein und Nein.

Edit: Wäre zumindest nett sein um einen Kommentar zu hinterlassen, wenn Downvoting

Antwort

3

Ja, was Sie tun möchten, wurde seit Xcode 6 mit dem simctl Befehl unterstützt. Schauen Sie sich auf:

 
$ xcrun simctl create 
Usage: simctl create &ltname> &ltdevice type id> &ltruntime id> 

Sie können eine Liste von Device IDs erhalten und Runtime-IDs durch Ausführen von:

xcrun simctl list devicetypes runtimes

Sie sie dann xcrun simctl boot <device UDID> mit booten kann. Bei Verwendung von Xcode 6.x und 7.x sind solche Starts in ihrem Umfang begrenzt (Apps können nicht installiert und gestartet werden, aber Sie können Prozesse starten), aber bei neueren Xcode 8-Betas werden sie zu vollen Sitzungen gestartet (obwohl Sie kann nicht mit ihnen interagieren mit Simulator.app, sie sind ideal für den Einsatz in automatisierten Test-und Build-Umgebungen).

+0

Tolle Neuigkeiten, danke ich werde es überprüfen und antworten –

+0

ok, ich bin auf meinem Weg .., irgendwie. Hab noch ein paar Fragen. Was passiert, wenn ich ein Gerät unter dem gleichen Namen erstelle? Ich habe herausgefunden, dass es mir eine andere UUID gibt. Auch wenn ich versuche zu booten, erscheint es nicht. Wenn ich versuche, das gleiche wieder in der Console zu booten, gibt es mir: xcrun simctl boot 84712E71-8D64-4C82-8E9C-5181D4C32B7C Ein Fehler ist bei der Verarbeitung des Befehls aufgetreten (domain = com.apple.CoreSimulator.SimError, code = 159) : Das Gerät konnte nicht im aktuellen Zustand gestartet werden: Booted ...., es wird gebootet, aber nicht gezeigt –

+0

Ich kann es herunterfahren und es wieder starten, aber nichts zeigt sich. Ist das das definierte Verhalten? –

0

AFAIK nur die Simulatoren von Xcode vorgesehen nutzen können - aber das sollte wirklich alles, was Sie brauchen. Es gibt weniger Variationen in der Hardware in iOS als in Android, daher sollten keine Einstellungen oder Eigenschaften angewendet werden.

Soweit die Simulator-App so viel wie Sie wollen, können Sie das tun. Der Simulator ist eine App auf Ihrem Computer wie alles andere auch.

-Mine befindet sich hier (ich glaube auch, das ist der Standardpfad):

/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app

ich meine Simulator App zu meinem Dock hinzugefügt, so kann ich es jederzeit starten (hilft auch bei der Fehlersuche Website-Layout für mobile Geräte)

Hoffe, das hilft.

EDIT: Wenn Sie von der Kommandozeile öffnen müssen:

open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app

wird es tun

+0

Das bedeutet, ich kann diese Simulator-App ohne Einschränkungen mehrmals ausführen und benutzen !? Ich werde es ausprobieren und akzeptieren, wenn ich arbeite, danke! –

+0

Ja, Sie sollten in der Lage sein, ohne Problem. Wenn Sie eine Befehlszeilenoption benötigen, lesen Sie meine Bearbeitung. – wyzkid207

+0

So könnte der Simulator einmal von diesem Ort aus starten, aber nicht zweimal. Ich habe versucht, es zu kopieren und zu starten, aber das gab mir einen Fehler. Ich werde versuchen, mit dem Befehl zu öffnen –

0

Sie xcodebuild test gegen bestimmte Simulatoren testen können. Zum Beispiel:

> xcodebuild test -project MyAppProject.xcodeproj -scheme MyApp -destination 'platform=Simulator,name=iPhone,OS=8.1' 

Siehe Testing With Xcode.

+0

Die Frage ist nicht über einen einzigen Simulator zu laufen, sondern um einen zu erstellen oder mindestens einen zu verwenden, oder habe ich Ihre Antwort falsch –

+0

Sie erstellen keine Simulatoren für iOS wie Android-Simulatoren. Es gibt eine Simulator-Anwendung, die jedes neuere iOS-Gerät emulieren kann. Sie können nicht den Arbeitsspeicher, die Bildschirmgröße, die Auflösung usw. angeben - Sie wählen einfach das Gerät aus, das Sie emulieren möchten, z. B. ein iPhone 6s +. Sie können die Anwendung über die Befehlszeile ausführen und nach Abschluss des Tests Ihre Anwendung mit einer anderen Geräteeinstellung ausführen. – EricS

+0

Ok, danke für deine Antwort. Die Antwort ist wieder "Nein", ich kann nicht mehrere Geräte gleichzeitig ausführen, wie ich in einer performanten parallelen Testumgebung gefragt habe. Oder sehen Sie eine Chance, das zu haben? Ich bearbeite meine Frage, um klarer zu sein. Ich möchte keinen einzigen Simulator, der meine Testzeit durcheinanderbringt. Und ich möchte definieren, dass ein Gerät mehrmals gestartet wird, um es zu testen. Das bedeutet, dass diese Simulatorinstanzen parallel ausgeführt werden müssen. Ich möchte nicht einhändig für 20 Test für 1 Stunde warten, ich möchte sie parallel haben. –

0

Zusätzlich zu der bereits angenommenen Antwort: Ab Xcode 8.2 ist es auch möglich, Screenshots mit xcrun simctl io booted screenshot zu erstellen und Videoaufnahmen mit xcrun simctl io booted recordVideo <filename>.<file extension> zu screenen. Siehe auch Apple Xcode 8.2 Release Notes