[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)“