Um dies zu tun, musst du einen leeren Ordner mit dem Namen „AppleInternal“ im Hauptverzeichnis erstellen. Führen Sie einfach den folgenden Befehl aus und starten Sie den Simulator neu:
sudo mkdir /AppleInternal
Der neue Menüpunkt sollte nun angezeigt werden. ☝️
Hinweis: Ich habe diesen Ansatz mit dem Simulator von Xcode 9b3 getestet. Wenn Sie ihn nicht haben, laden Sie bitte das neueste Xcode hier herunter.
#2 Öffnen Sie mehrere Simulatoren auf einmal
Erinnern Sie sich an die Frustration beim Testen Ihrer App auf verschiedenen Simulatoren? Früher waren Sie gezwungen, jeweils nur eine Simulatorinstanz zu öffnen. Es gab viele „Hacks“, wie man mehrere Instanzen des iOS-Simulators in einer älteren Version von Xcode öffnen konnte. Aber mit Xcode 9 ist diese Funktion endlich standardmäßig verfügbar.
#3 Größe des Simulators wie ein normales Fenster ändern
Vor Xcode 9 hatten wir nur „Skalierungsoptionen“, um die Fenstergröße des Simulators anzupassen. Jetzt hat Apple endlich die Möglichkeit geschaffen, die Größe des Simulatorfensters zu ändern. Das ist ein nützliches kleines Detail, das Ihnen helfen kann, Ihren Arbeitsbereich effizient zu organisieren, wenn Sie mehrere Simulatoren geöffnet haben.
#4 Video des Simulators aufnehmen
In dem offiziellen „What’s new“-Dokument für Xcode 9 behauptet Apple, dass Sie jetzt ein Video des Simulatorbildschirms aufnehmen können. Das ist nicht ganz richtig. Man kann es auch in den älteren Versionen mit simctl
machen. Ich habe allerdings keinen Hinweis darauf gefunden, dass man die Videoaufzeichnung über die Benutzeroberfläche aktivieren kann (mit Ausnahme der eingebauten Bildschirmaufzeichnung in iOS 11).
Um die Videodatei zu erhalten, führen Sie den folgenden Befehl aus:
xcrun simctl io booted recordVideo --type=mp4 <PATH TO VIDEO FILE>
booted
– bedeutet, dass simctl
den aktuell gebooteten Simulator auswählt. Falls du mehr als einen gebooteten Simulator hast, wählt simctl
die gerade aktive Instanz aus.
#5 Share files to Simulator right from Finder
Jetzt hat Simulator eine Finder-Erweiterung, die es dir erlaubt, Dateien direkt aus dem Finder-Fenster zu teilen.
So etwas ähnliches kann man mit Bild-/Videodateien machen, indem man den simctl
Befehl unten verwendet:
xcrun simctl addmedia booted <PATH TO MEDIA FILE>
Es ist schön, solche Fähigkeiten zu haben. Allerdings scheint mir das Ziehen&von Dateien in das Simulator-Fenster viel schneller zu sein.
#6 URLs im Simulator öffnen
Dieser Befehl kommt auch mit simctl
. So können Sie benutzerdefinierte URL-Schemata auch auf älteren Simulatoren öffnen.
Führen Sie den folgenden Befehl mit der gewünschten URL aus:
xcrun simctl openurl booted <URL>
Für eine Liste aller Apple-URL-Schemata sehen Sie bitte in der Dokumentation nach.
#7 Schnell den Container-Ordner der App finden
Ein weiterer Befehl von simctl
. Sie können den Container einer Anwendung im Dateisystem mit einem einzigen Befehl finden. Sie müssen nur den Bundle-Identifikator der App kennen und den folgenden Befehl ausführen:
xcrun simctl get_app_container booted <APP'S BUNDLE ID>
Oder Sie können es noch schneller machen, indem Sie den Zielordner im Finder mit dem Befehl open
öffnen:
open `xcrun simctl get_app_container booted <APP'S BUNDLE ID>` -a Finder
#8 Starten Sie Ihre App im Simulator mit Kommandozeilenargumenten
Mit simctl
können Sie Ihre App auch vom Terminal aus starten und dort einige Kommandozeilenargumente übergeben (Sie können sogar einige Umgebungsvariablen setzen). Das kann hilfreich sein, wenn du deiner App ein verstecktes Debug-Verhalten hinzufügen willst.
Der folgende Befehl hilft dir dabei:
xcrun simctl launch --console booted <BUNDLE ID> <YOUR ARGUMENTS>
Diese Kommandozeilenargumente kannst du von CommandLine.arguments
bekommen (hier ist der Link zur Dokumentation).
#9 Get full application info with Bundle ID
Manchmal ist es nützlich, herauszufinden, wo sich deine App-Datei oder temporäre Daten im Dateisystem befinden. Wenn Sie umfassendere Informationen benötigen, als simctl get_app_container
geben kann. simctl
hat auch dieses nette kleine Tool namens appinfo
, das dir einige Informationen in folgendem Format anzeigt:
{ ApplicationType = User; Bundle = <PATH TO APP FILE>; BundleContainer = <PATH TO FOLDER WITH APP FILE>; CFBundleDisplayName = TestiOSApp; CFBundleExecutable = TestiOSApp; CFBundleIdentifier = "com.ahmed.app.TestiOSApp"; CFBundleName = TestiOSApp; CFBundleVersion = 1; DataContainer = <PATH TO YOUR DATA>; GroupContainers = { }; Path = <PATH TO APP FILE>; SBAppTags = ( ); }
Führ den folgenden Befehl aus und sieh dir die Ausgabe an:
xcrun simctl appinfo booted <BUNDLE ID>
Eine letzte Sache…
iOS Simulator ist ein sehr leistungsfähiges Tool, das deinen Entwicklungsprozess um einiges beschleunigen kann. Aber nur, wenn man alle kleinen Details und Tricks kennt. Und natürlich muss man als guter Ingenieur seine Werkzeuge kennen.
Hier bei Flawless ist der iOS Simulator extrem wichtig für uns. Unser Produkt ist ein iOS-Simulator-Plugin, das es Ingenieuren ermöglicht, jedes Design über die Implementierung hinaus direkt im Simulator zu überprüfen. Ich kann Ihnen gar nicht sagen, wie sehr ich mich über diese neue Version von Xcode 9 und Simulator freue. Ich kann es kaum erwarten, dass die öffentliche Version erscheint! So können wir noch mehr nützliche Funktionen implementieren, um die visuelle Qualität von iOS-Apps in einem guten Zustand zu halten.