Emulátor iPadu a iPhonu (na MacOS)

[Aktualizováno]: obsahuje nový způsob stažení a spuštění iOS Simulátoru. V textu jsem ponechal i části původního textu pro případ, že nový postup není možné zcela použít pro starší verze MacOS. Současný text platí pro MacOS X Yosemite. Pokud chcete emulovat a debugovat své stránky na iPadu a iPhonu a máte k dispozici libovolný počítač Mac (iMac, MacBook apod.), můžete si do něj nainstalovat emulátor.

Instalace Xcode

Aktualizace: V novějších verzích MacOS je již možno instalovat Xcode z App store a je do něj možno stáhnout i starší verze iOS (např. Xcode 9.2 podporuje iOS od 11.1 až po 8.1). Zbytek této kapitoly je stále platný, ale již není potřeba stahovat starší verze Xcode. Aplikaci App store je dostupná až od verze Snow Leopard, takže pokud máte starší Mac, budete ho muset Updatovat. Pokud máte opravdu hodně starý Mac, již updatovat nepůjde. V tom případě můžete zkusit zprovoznit MacOs jako virtuální stroj. Apple se řídí pravidlem, že každá verze Xcode podporuje pouze poslední iOS (a lze doinstalovat ještě předposlední). Výjimka nastane pouze v případě, že vyjde nová verze iOS (zpravidla iOS X.1) aniž by bylo nutné vydat novou verzi Xcode. Proto je potřeba stáhnout různé verze Xcode podle toho, jaké verze iOS potřebujete testovat. Pro stažení starší verze Xcode na stránku https://developer.apple.com/downloads, přihlaste se, klikněte na See more downloads a stáhněte požadovanou verzi Xcode (vždy v poslední vydané verzi):
  • Xcode 10.1 (isOS 12, stáhnout lze starší iOS 8 až 11)
  • Xcode 9.2 (iOS 11.2, stáhnout lze starší iOS 8 až 11)
  • Xcode 6.1.1 (iOS 8.0 a iOS 7.1)
  • Xcode 5.1.1 (iOS 7.1, iOS 6.1 a iOS 6.0)
    • není podporován od MacOS El Capitan
  • Starší verze již nejsou v Yosemite kompatibilní
Po stažení otevřete jednotlivé balíčky (DMG) a přetáhněte ikonu Xcode do složky Aplikace (či na plochu nebo kamkoliv jinam). Klikněte na jméno ikony (nebo stiskněte Enter) a přejmenujte ji podle příslušné verze (např. „Xcode 6“). Tím zajistíte, že se jednotlivé verze nebudou přepisovat. Následně postupujte pro každou verzi podle následujícího popisu. Poznámka: v MacOS jsou aplikace ve skutečnosti složky s příponou *.app; proto mohou v sobě obsahovat soubory nebo dokonce další aplikace.

Cesta k Xcode

Pokud použijete tento způsob s přejmenováním Xcode aplikace, můžete narazit na problém, že některé externí aplikace nebudou moci s Xcode pracovat. Budete tedy muset nastavit správnou cestu k Xcode verzi, kterou chcete používat jako primární. Nejprve spusťte Terminál (Aplikace/Utility/Terminál) a zadejte příkaz:
xcode-select --print-path
Příkaz by měl vypsat cestu k Developer složce uvnitř Xcode aplikace (např. /Applications/Xcode.app/Contents/Developer). Pokud vypíše něco jiného (např. cestu k CommandLineTool) nebo neexistujícího (např. Xcode.app neexistuje, protože jste ji přejmenovali), použijte v terminálu příkaz:
sudo xcode-select -switch /Applications/<jméno Xcode aplikace>.app/Contents/Developer
Do cesty uveďte správné jméno aplikace, které chcete použít; např. pokud máte aplikace Xcode5 a Xcode6, použijte cestu /Applications/Xcode6.app/Contents/Developer. Pro provedení příkazu musíte zadat heslo správce počítače (stejné heslo které zadáváte např. při instalaci aplikací nebo změně nastavení). Tip: v Terminálu můžete pomocí Tabulátoru nechat doplňovat složky v cestě – stačí napsat pár prvních písmen.

Nalezení emulátoru

Control-klikněte (nebo PTM nebo double-tap) na ikonu XCode a zvolte Show package content (Zobrazit obsah balíčku). V balíčku nyní najdete cestu k aplikacím (viz níže), kde je i iOS Simulator. Ten buď připněte do Docku (přetažením na Dock) nebo vytvořte Alias ve složce Aplikace (přetažení s ⌥⌘; tedy držte ALT+CMD neboli Option + Command).
  • Xcode 5 a starší: /Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications
  • Xcode 6 a novější: /Contents/Developer/Applications
Spusťte požadovanou verzi Xcode a v menu Xcode otevřete Open Developer Tools a klikněte na iOS Simulator. Tím se emulátor spustí a zobrazí se v liště. Control-klikněte (nebo PTM nebo double-tap) na ikonu v liště a zvolte Volby – Ponechat v Docku (Options – Keep in Dock). Tím budete moci spouštět emulátor i po ukončení Xcode. Pokud nechcete nechávat emulátor v docku, zvolte z menu Volby naopak Zobrazit ve Finderu a vytvořte zástupce v požadované složce (Aplikace, na ploše apod.) přetažení s ⌥⌘ (držte ALT+CMD neboli Option + Command). U Xcode 6 a novější stačí pro spuštění Simulatoru Control-click (nebo PTM ) na ikonu v docku a z Open developer tool zvolit Simulator. U Xcode 7 máte na výběr Simulator (už bez „iOS“ označení), který umí emulovat iPhone 4S až 6S a iPad 2 a novější (v menu Hardware/Device/iOS 9) nebo Apple TV (menu Hardware/Device/tvOS 9), a Simulator Watch, který umí emulator Apple hodinky (v menu Hardware/Device můžete volit velikost hodinek).

Stažení starších verzí

Momentálně jsou k dispozici emulátory pro iOS 8, iOS 7.1, iOS 7.0 a iOS 6.1 a v budoucnu budou pravděpodobně i další (novější – po jejich vydání). V novějších verzích již není možné stáhnout starší verze, např. v Xcode 6 je již jen iOS 8 a iOS 7.1. S Xcode se vždy stáhne jen ten nejnovější iOS emulátor. Pro stažení starších verzí musíte Xcode spustit (ze složky Aplikace) a v menu Xcode zvolit Preferences. Přejděte na záložku Downloads a pod Components klikněte pro stažení požadované verze. Alternativně, trochu složitěji, můžete v Simulatoru kliknout na Hardware – Device – Manage Devices, v okně kliknou na + vlevo dole a pod iOS Version zvolit Download more simulators. Pokud se vám po stažení souboru pouze zobrazí chyba „Je požadována autorizace pro instalaci balíčku“ („Authorization is required to install the package“), ukončete Xcode, spusťte Terminál a zadejte:
sudo /Applications/Xcode.app/Contents/MacOS/Xcode
Adresu „/Aplications/Xcode.app“ nahraďte za skutečné jméno, pokud jste ho přesunuli nebo přejmenovali, např.:
sudo /Devel/Xcode 7.app/Contents/MacOS/Xcode
Z nějakého důvodu se mi obrazovka Downloads v Xcode 6 během stahování nepřekreslovala, takže to vypadalo, jako že se nic nestahuje. Stačí přepnout na vedlejší záložku (např. Locations) a pak zpět a zobrazí se aktuální stav.

Spuštění emulátoru

Po spuštění emulátoru můžete v menu Hardware/Device přepínat mezi různými modely iPhone, iPad, apod. iPhone 3GS je dostupný, jen pokud máte stažen iOS 6.1. Pokud máte stažen iOS 7.x, může být také dostupný v 64-bitové verzi. Pokud máte staženo více verzí (např. iOS 6 a iOS7), každá položka v menu Device bude mít podmenu, kde můžete přepínat verze OS. V Xcode 6 naopak nejprve volíte verzi iOS a pod ní je seznam nastavených emulátorů. Od MacOS Yosemite je v Xcode nová obrazovka Manage Devices, kde můžete přímo vytvářet vlastní kombinace Hardwaru a Softwaru (tedy verze iPhonu/iPadu a verze iOS). V menu Hardware najdete i další položky jako je otáčení (Rotate), zatřesení (Shake) a HW tlačítka (Home a Lock). Pod menu Window pod položkou Scale můžete měnit zvětšení. To je šikovné hlavně u větších iPhone, které svým základním rozlišením přesahují rozlišení většiny iMaců a MacBooků, ale na běžné debugování vám stačí zoom 50%. Naopak pokud chcete ověřit, že se vám správně načítají responzivní obrázky, můžete zvětšit na 100%. Dva prsty současně můžete simulovat držením ⌥ (ALT, Options). Střed je vždy uprostřed obrazu a pomocí kurzoru můžete prsty oddalovat, přibližovat nebo otáček. Kliknutím pak simulujete stisk (tap) nebo držení (hold).

Chyba „Springboard quit unexpectingly“

Pokud při spouštění iPhone simulatoru z VirtualBox narazíte na tuhle chybu s aplikací Springboard, můžete to opravit vypnutím podpory AVX instrukcí. Ukončete Simulátor a vypněte VM. Spusťte příkazobvý řádek jako Správce a zadejte:

Pokud později narazíte na problém se spuštěním Iphone Simulatoru (chyba „Springboard quit unexpectingly“), ukončete VM a přidejte ještě do její konfigurace:

cd "C:\Program Files\Oracle\VirtualBox\" 

VBoxManage setextradata "MacOS" VBoxInternal/CPUM/IsaExts/AVX 0

VBoxManage setextradata "MacOS" VBoxInternal/CPUM/IsaExts/AVX2 0

Kde „MacOS“ je jméno příslušné VM v seznamu virtuálních strojů. Více informací viz MacOS a iOS jako Virtuální stroj.

Debugování

Stránky zobrazené v emulátoru je možno debugovat pomocí Safari. Spusťte Safari v emulátoru, přejděte na stránku, kterou chcete debugovat, a pak spusťte Safari v hostitelském MacOS. V menu Safari zvolte Settings (Předvolby), přejděte na Advanced (Pokročilé) a zaškrtněte Show Developer tools (Zobrazit nabídku Vývojář). Zavřete nastavení a v menu Developer (Vývojář) najděte položku iPhone Simulator nebo iPad Simulator (podle toho, co je zrovna spuštěno). Klikněte na požadovanou stránku (která musí být otevřena v Safari v emulátoru) a otevře se vám Web Inspector (Inspektor webu) pro emulátor. V debuggeru pak můžete dělat všechny obvyklé věci – prohlížet zdroje webu (Resources), prozkoumávat DOM (Inspect) debugovat skripty (ResourcesScripts) nebo spouštět příkazy v konzoly (Console).

Otočení obrazu MacBooku

Pokud debugujete na MacBooku a nevejde se vám iPhone v Portrait (na výšku) na obrazovku, můžete otočit obraz MacBooku a získat tím vhodnější rozlišení. Nejprve v horní liště klikněte na ikonu jablíčka (obdoba nabídky Start z Windows) a zvolte System Preferences (Předvolby systému). Nyní v menu System Preferences (Předvolby systému) zvolte Quit System Settings (Ukončit Předvolby systému). Tím jste se ujistili, že nejsou uloženy v paměti. Nyní postupujte stejně, ale celou dobu držte ⌥⌘ (ALT+CMD neboli Option + Command). Spusťte znovu System Preferences (Předvolby systému) a klikněte na Displays (Monitory). Teď můžete pustit ⌥⌘ a pod položkou Rotation (Otočení) zvolit 90° nebo 270° (podle toho, co je pro vás výhodnější). Po otočení obrazu doporučuji používat externí (USB nebo BT) myš, protože ovládání integrovaným touchpadem je značně matoucí. Poznámka: u externím monitorů je nabídka otáčení přítomna vždy, ale otáčet integrovaným monitorem není častá činnost a proto není v základní nabídce zobrazena. Poznámka: pokud máte MacOS ve virtuálním počítači (VM), nemusí MacOS správně monitor rozpoznat a nemusí být změna otočení (a rozlišení) vůbec k dispozici.

1 komentář u „Emulátor iPadu a iPhonu (na MacOS)“

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..