Aby to zrobić, musisz utworzyć pusty folder o nazwie „AppleInternal” w katalogu głównym. Wystarczy uruchomić poniższe polecenie i zrestartować Simulator:
sudo mkdir /AppleInternal
Nowa pozycja w menu powinna się pojawić. ☝️
Uwaga: Testowałem to podejście na Symulatorze z Xcode 9b3. Jeśli go nie masz, pobierz najnowszy Xcode tutaj.
#2 Otwórz wiele symulatorów jednocześnie
Czy pamiętasz frustrację związaną z testowaniem swojej aplikacji na różnych symulatorach? Wcześniej byłeś zmuszony do otwierania tylko jednej instancji symulatora w danym momencie. Istniało wiele „hacków”, jak otworzyć wiele instancji symulatora iOS w starszej wersji Xcode. Ale w końcu, z Xcode 9 ta funkcja jest dostępna po wyjęciu z pudełka.
#3 Zmień rozmiar symulatora tak jak zwykłe okno
Przed Xcode 9 mieliśmy „Opcje skalowania” tylko po to, aby dostosować rozmiar okna symulatora. Teraz Apple wreszcie udostępniło możliwość zmiany rozmiaru okna symulatora. Jest to przydatny mały szczegół, który może pomóc w efektywnej organizacji przestrzeni roboczej, jeśli masz otwartych wiele symulatorów.
#4 Nagrywanie wideo symulatora
W oficjalnym dokumencie „Co nowego” dla Xcode 9, Apple twierdzi, że teraz można nagrać wideo ekranu symulatora. Nie jest to do końca prawda. Możesz to zrobić nawet w starszych wersjach z simctl
. Nie znalazłem jednak żadnych dowodów na to, że można włączyć nagrywanie wideo z interfejsu (z wyjątkiem wbudowanego nagrywania ekranu w iOS 11).
Aby uzyskać plik wideo, wykonaj następujące polecenie:
xcrun simctl io booted recordVideo --type=mp4 <PATH TO VIDEO FILE>
booted
– oznacza, że simctl
wybiera aktualnie uruchomiony symulator. W przypadku, gdy masz więcej niż jeden uruchomiony Simulator, simctl
wybiera aktualnie aktywną instancję.
#5 Udostępnianie plików do Simulatora bezpośrednio z Findera
Teraz Simulator posiada rozszerzenie Findera, które pozwala na udostępnianie plików bezpośrednio z okna Findera.
Możesz zrobić coś podobnego z plikami image/video używając poniższej komendy simctl
:
xcrun simctl addmedia booted <PATH TO MEDIA FILE>
Miło jest mieć takie możliwości. Jednak przeciągnij&drop plik do okna Symulatora wydaje mi się znacznie szybsze.
#6 Otwórz adresy URL na Symulatorze
Ten jest również dostarczany z simctl
. Możesz więc otwierać niestandardowe schematy URL także na starszych symulatorach.
Wykonaj poniższe polecenie z dowolnym adresem URL, którego potrzebujesz:
xcrun simctl openurl booted <URL>
Dla listy wszystkich schematów URL Apple’a sprawdź dokumentację.
#7 Szybko znajdź folder kontenera aplikacji
Jeszcze jedno polecenie z simctl
. Możesz uzyskać kontener aplikacji w systemie plików za pomocą jednej komendy. Wystarczy znać identyfikator pakietu aplikacji i wykonać poniższe polecenie:
xcrun simctl get_app_container booted <APP'S BUNDLE ID>
Albo można to zrobić jeszcze szybciej, otwierając folder docelowy w Finderze poleceniem open
:
open `xcrun simctl get_app_container booted <APP'S BUNDLE ID>` -a Finder
#8 Uruchamianie aplikacji w symulatorze za pomocą argumentów z wiersza poleceń
Z pomocą simctl
można również uruchamiać aplikację z terminala i przekazywać tam pewne argumenty z wiersza poleceń (można nawet ustawić pewne zmienne środowiskowe). Może to być pomocne, jeśli chcesz dodać jakieś ukryte zachowanie tylko do debugowania do swojej aplikacji.
Pomogą ci w tym poniższe polecenia:
xcrun simctl launch --console booted <BUNDLE ID> <YOUR ARGUMENTS>
Możesz uzyskać te argumenty wiersza poleceń z CommandLine.arguments
(tutaj jest link do dokumentacji).
#9 Get full application info with Bundle ID
Czasami warto dowiedzieć się, gdzie w systemie plików znajduje się plik twojej aplikacji lub dane tymczasowe. Jeśli potrzebujesz bardziej wyczerpujących informacji niż te, które może dać simctl get_app_container
. simctl
ma również to miłe małe narzędzie o nazwie appinfo
, które pokaże ci pewne informacje w następującym formacie:
{ 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 = ( ); }
Wykonaj poniższe polecenie i sprawdź wynik:
xcrun simctl appinfo booted <BUNDLE ID>
Jeszcze jedna rzecz…
Symulator iOS jest bardzo potężnym narzędziem, które może bardzo przyspieszyć twój proces rozwoju. Ale tylko wtedy, gdy znasz wszystkie małe szczegóły i sztuczki. I oczywiście, jako dobry inżynier, musisz znać swoje narzędzia.
Tutaj w Flawless, iOS Simulator jest dla nas niezwykle ważny. Naszym produktem jest wtyczka do iOS Simulator, która pozwala inżynierom na sprawdzenie dowolnego projektu na górze implementacji bezpośrednio w Simulatorze. Więc nie mogę nawet powiedzieć, jak bardzo jestem zadowolony z tego nowego wydania Xcode 9 i Simulatora. Nie mogę się doczekać wersji publicznej! Więc możemy wdrożyć więcej przydatnych funkcji, aby utrzymać wizualną jakość aplikacji iOS w dobrej formie.