Om dit te doen moet je een lege map maken met de naam “AppleInternal” in de root directory. Voer het onderstaande commando uit en herstart Simulator:
sudo mkdir /AppleInternal
Het nieuwe menu item zou moeten verschijnen. ☝️
Note: Ik heb deze aanpak getest op Simulator van Xcode 9b3. Als u die niet hebt, kunt u hier de nieuwste Xcode downloaden.
#2 Open meerdere simulators tegelijk
Herinnert u zich de frustratie van het testen van uw app op verschillende simulators? Voorheen was je gedwongen om slechts een simulator instantie tegelijk te openen. Er waren veel “hacks” hoe je meerdere instanties van iOS simulator in een oudere versie van Xcode kon openen. Maar met Xcode 9 is deze functie eindelijk beschikbaar.
#3 Simulator vergroten of verkleinen net als een gewoon venster
Voor Xcode 9 hadden we alleen “Schaal opties” om de grootte van het simulator venster aan te passen. Nu heeft Apple eindelijk de grootte van het venster van de simulator beschikbaar gemaakt. Dit is een handig detail dat je kan helpen om je werkruimte efficiënt in te delen als je meerdere simulators hebt geopend.
#4 Video opnemen van simulator
In het officiële “Wat is er nieuw” document voor Xcode 9, beweert Apple dat je nu een video van het scherm van de simulator kunt opnemen. Dat is niet helemaal waar. Je kunt het zelfs in de oudere versies doen met simctl
. Ik heb echter geen bewijs gevonden dat je video-opname vanuit de interface kunt inschakelen (behalve de ingebouwde schermopname in iOS 11).
Om je videobestand te krijgen, voer je het volgende commando uit:
xcrun simctl io booted recordVideo --type=mp4 <PATH TO VIDEO FILE>
booted
– betekent, dat simctl
de momenteel opgestarte simulator selecteert. In het geval dat u meer dan een Simulator heeft, selecteert simctl
de huidige actieve instantie.
#5 Deel bestanden naar Simulator direct vanuit de Finder
Nu heeft Simulator een Finder extensie waarmee u bestanden direct vanuit het Finder venster kunt delen.
Je kunt iets soortgelijks doen met afbeeldingen/video bestanden met het simctl
commando hieronder:
xcrun simctl addmedia booted <PATH TO MEDIA FILE>
Het is leuk om zulke mogelijkheden te hebben. Echter, drag&drop het bestand naar het Simulator venster lijkt mij veel sneller.
#6 Open URLs op Simulator
Deze komt ook met simctl
. U kunt dus ook op oudere simulators aangepaste URL-schema’s openen.
Voer het onderstaande commando uit met de URL die u nodig hebt:
xcrun simctl openurl booted <URL>
Voor een lijst met alle URL-schema’s van Apple, zie de documentatie.
#7 Vind snel de app-containermap
Nog een commando van simctl
. U kunt app’s container op het bestandssysteem krijgen met een enkel commando. U hoeft alleen de bundel identifier van de app te weten en het onderstaande commando uit te voeren:
xcrun simctl get_app_container booted <APP'S BUNDLE ID>
Of u kunt het nog sneller maken door de doelmap in de Finder te openen met het open
commando:
open `xcrun simctl get_app_container booted <APP'S BUNDLE ID>` -a Finder
#8 Start uw app in de Simulator met command line args
Met simctl
kunt u uw app ook vanaf terminal starten en daar een aantal command line argumenten doorgeven (u kunt zelfs een aantal omgevingsvariabelen instellen). Dit kan handig zijn als u verborgen debuggedrag aan uw app wilt toevoegen.
Het onderstaande commando helpt u daarbij:
xcrun simctl launch --console booted <BUNDLE ID> <YOUR ARGUMENTS>
U kunt deze commandoregelargumenten uit CommandLine.arguments
halen (hier is de link naar de documentatie).
#9 Verkrijg volledige applicatie-info met bundel-ID
Soms is het handig om te weten waar uw app-bestand of tijdelijke gegevens zich op het bestandssysteem bevinden. Als u meer uitgebreide informatie nodig hebt dan simctl get_app_container
kan geven. simctl
heeft ook dit leuke kleine hulpprogramma genaamd appinfo
dat u wat informatie zal laten zien in het volgende formaat:
{ 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 = ( ); }
Voer het onderstaande commando uit en bekijk de uitvoer:
xcrun simctl appinfo booted <BUNDLE ID>
Een laatste ding …
iOS Simulator is een zeer krachtig hulpmiddel dat uw ontwikkelingsproces een stuk kan versnellen. Maar alleen als je alle kleine details en trucs kent. En natuurlijk, als een goede ingenieur, moet je je tools kennen.
Hier bij Flawless, iOS Simulator is uiterst belangrijk voor ons. Ons product is een iOS Simulator plugin die engineers in staat stelt om elk ontwerp te inspecteren bovenop de implementatie, direct in Simulator. Dus ik kan je niet eens vertellen hoe blij ik ben met deze nieuwe Xcode 9 en Simulator release. Ik kan niet wachten op de publieke versie! Zodat we meer nuttige functies kunnen implementeren om de visuele kwaliteit van iOS apps in een goede vorm te houden.