Il simulatore Xcode è uno degli strumenti più utilizzati dagli sviluppatori. Eseguire e testare le app sul simulatore è diventato parte della routine quotidiana di ogni sviluppatore. Acquisire familiarità con le varie opzioni del simulatore è vitale per ogni sviluppatore. Sapevate che potete creare e configurare i simulatori anche dalla riga di comando? In questo tutorial, imparerete:
- Cos’è un simulatore
- Informazioni sulle utili opzioni del simulatore
- Per creare e configurare i simulatori dalla riga di comando
- Per trasmettere e catturare i log usando la riga di comando
- Per creare uno script Bash per automatizzare il lancio dell’app su un simulatore in diverse località.
Iniziare
Scaricate il progetto facendo clic sul pulsante Scarica materiali in cima o in fondo a questa pagina. Apri il progetto RayWonders. Costruisci ed esegui.
Questa applicazione ha due schede – Foto e Mappa. La scheda Foto mostra le foto delle meraviglie del mondo. Toccando una foto viene visualizzata una vista dettagliata della sua descrizione. La scheda Mappa mostra le foto delle meraviglie del mondo come annotazioni su una mappa. Questo è uno dei rari tutorial di raywenderlich.com in cui non modificherete il progetto. Invece, userete questa applicazione come base per imparare le varie opzioni del simulatore. Prima di intraprendere il vostro giro del mondo, avrete bisogno di capire cos’è un simulatore.
Cos’è un simulatore?
Il simulatore è un ottimo strumento per simulare iOS, iPadOS, tvOS e watchOS sul Mac. Aiuta la prototipazione rapida e il test delle build simulando diversi dispositivi. Ad un livello più tecnico, un simulatore è uno spazio utente separato che gira sul kernel di macOS.
Lo spazio utente è la memoria di sistema allocata per eseguire le applicazioni, mentre lo spazio kernel è la memoria di sistema allocata per eseguire il kernel del sistema operativo e i driver dei dispositivi. L’avvio di un nuovo simulatore crea uno spazio utente separato.
Il kernel è un componente centrale del sistema operativo. Facilita le interazioni tra i componenti hardware e software. È responsabile della gestione dell’hardware, dell’allocazione della memoria e dell’arbitraggio tra i processi.
Uno di questi processi – Daemon – gira in background. launchd, cfprefsd, distnoted sono alcuni dei demoni di sistema.
Eseguire un’applicazione su un dispositivo e su un simulatore è la stessa cosa? Lo imparerai dopo.
Eseguire un’app su un dispositivo contro un simulatore
Testare le app su un simulatore è molto utile. Tuttavia, ci sono alcune differenze chiave tra l’esecuzione delle app su un dispositivo e su un simulatore.
Prestazioni di calcolo
I simulatori condividono le stesse risorse di calcolo con il Mac. Questo include memoria, CPU e connessione di rete. Al contrario, i dispositivi fisici hanno meno memoria e potenza di calcolo rispetto a un Mac. Inoltre, la rete può essere una bestia imprevedibile sul dispositivo fisico.
Display
La risoluzione e la gamma di colori su un Mac e sul dispositivo fisico possono differire, facendo apparire immagini e testo frastagliati. Imparerai come simulare l’esatta dimensione del dispositivo fisico più avanti in questo tutorial.
Limitazioni hardware
Alcuni componenti hardware non sono supportati in un simulatore. Questi includono:
- Bluetooth
- Camera
- Sensori di movimento come accelerometro e giroscopio
- Sensore di prossimità
Limitazioni del framework
Alcuni framework non sono supportati nel simulatore. Questi includono:
- ARKit
- HomeKit
- IOSurface
- MessageUI
Per una lista più esaustiva di tutte le differenze, fate riferimento alla documentazione selezionando Help ▸ Simulator Help nel menu Simulator.
In seguito, imparerete come organizzare i simulatori.
Organizzare i simulatori usando Xcode
Xcode viene fornito con un set predefinito di simulatori. Per visualizzare una lista di questi simulatori, segui questi passi:
- Apri Xcode.
- Seleziona l’opzione di menu Window.
- Scegli il menu Devices and Simulators.
- Seleziona la scheda Simulatori.
Vedrai un elenco di simulatori che sono stati forniti con Xcode. Se hai scaricato altri runtime in passato, vedrai anche quei simulatori associati.
Ora, creerai un nuovo simulatore con un nome personalizzato.
Seguite questi passi:
- Premete il pulsante + in basso a sinistra.
- Imposta il nome del simulatore come Demo.
- Seleziona iPhone 12 Pro come tipo di dispositivo.
- Selezionate iOS 14.2 come versione del sistema operativo.
- Premete Create.
Questo crea un nuovo simulatore con il nome Demo, che ora potete trovare nella lista dei simulatori.
Selezionate la casella di controllo Show as runtime destination per il simulatore Demo.
Questo nasconde il simulatore. Non apparirà nella lista dei simulatori accanto allo schema dell’app.
Control-click sul simulatore Demo. Appariranno diverse opzioni, come Elimina e Rinomina.
Vai avanti ed elimina il simulatore Demo cliccando su Elimina. Non preoccuparti; lo creerai con un metodo diverso molto presto.
Eseguire i vecchi runtime
A volte dovrai eseguire la tua applicazione su vecchie versioni di runtime.
Puoi scaricare runtimes più vecchie selezionando Download more runtimes nel menu a tendina OS Version quando crei un nuovo simulatore.
Puoi anche scaricare più runtimes dalla finestra Components. Seleziona Xcode ▸ Preferenze ▸ Opzione Componenti.
Questa finestra mostra l’elenco del runtime del simulatore scaricato e altri runtime disponibili per il download.
Prossimo, imparerai un modo alternativo per creare simulatori.
Creazione di simulatori dal menu del simulatore
Costruisci ed esegui.
Quando il simulatore è in esecuzione, segui questi passi:
- Seleziona File ▸ Nuovo simulatore dal menu del simulatore.
- Inserisci Demo come nome del simulatore.
- Seleziona iPhone 12 Pro come Tipo di dispositivo.
- Seleziona iOS 14.2 come versione.
- Clicca Crea.
Apri il simulatore seguendo questi passi:
- Seleziona File ▸ Apri simulatore dal menu.
- Seleziona il tempo di esecuzione di iOS 14.2.
- Scegliete il simulatore Demo.
Questo lancia il simulatore Demo.
È stato facile e veloce! Successivamente, imparerai a conoscere le varie opzioni di dimensione del simulatore.
Confronto delle opzioni di dimensione del simulatore
Puoi ridimensionare un simulatore cliccando e trascinando da uno dei quattro angoli. Le opzioni del menu Finestra forniscono quattro opzioni di ridimensionamento.
Dimensione fisica
Dimensione fisica ridimensiona il simulatore per corrispondere alle dimensioni reali del dispositivo. Questo permette di visualizzare l’aspetto della tua app su schermi di diverse dimensioni.
Punto preciso
La modalità punto preciso dimensiona la finestra in modo che il contenuto abbia le stesse dimensioni su dispositivi con diversi fattori di scala. Come risultato, un’immagine su un dispositivo con un display 3x appare con le stesse dimensioni di un display 2x.
Pixel Accurate
In questa modalità, la dimensione della finestra cambia allo stesso numero di pixel del dispositivo fisico. Ogni pixel sul dispositivo simulato corrisponde a un pixel sul display del Mac. Questo fa sì che i simulatori appaiano più grandi sullo schermo se il display del vostro Mac ha una densità di pixel inferiore a quella del dispositivo simulato. Puoi usare questa modalità per controllare l’allineamento delle immagini e dei controlli nella tua app.
Fit Screen
Questo ridimensiona il simulatore alle dimensioni del display del tuo Mac.
In seguito, imparerete le varie opzioni fornite in un simulatore.
Animazioni lente
Le animazioni sono parte integrante dell’esperienza di un’app. Costruisci ed esegui RayWonders nel simulatore Demo.
Tocca la scheda Foto. Poi, tocca una foto di una delle meraviglie del mondo per presentare una vista di dettagli sul luogo. Per simulare animazioni lente, seleziona l’opzione Debug ▸ Slow Animations nel menu Simulatore.
Tocca nuovamente l’immagine. La vista ora si anima lentamente.
Vedere le animazioni lentamente può aiutare a fare chiarezza. Inoltre, può aiutare ad esaminare i problemi di rendering e di prestazioni.
Prossimamente, imparerete a simulare il Dark Mode. Prima di procedere, disabilita le animazioni lente deselezionando l’opzione di menu Debug ▸ Slow Animations.
Dark Mode
Dark Mode fornisce un’ottima esperienza di visualizzazione in ambienti con poca luce. Il simulatore fornisce un’opzione per visualizzare la tua app in Dark Mode.
Seleziona Features ▸ Toggle Appearance. Questo altera l’aspetto in modalità scura. Ora, tocca la scheda Mappa in RayWonders.
Si noterà che la mappa ha assunto un aspetto scuro. Facile, vero? Questo è un modo pratico per testare la tua app in Dark Mode.
Per riportare l’aspetto a quello predefinito, deseleziona Features ▸ Toggle appearance. Per sapere come supportare la Dark Mode, dai un’occhiata a Supporting Dark Mode: Adapting You App to Support Dark Mode tutorial.
Prossimo, imparerai come simulare le notifiche push!
Simulare le notifiche push
Le notifiche push sono un ottimo modo per far sapere ai tuoi utenti gli aggiornamenti dei nuovi contenuti della tua app. In passato, testare le notifiche push era una sfida. Avevi bisogno di un dispositivo fisico per testare le notifiche push. A partire da Xcode 11.4, potete simulare le notifiche push su un simulatore.
Create un file chiamato RayWondersPushNotification.apns utilizzando quanto segue:
{ "Simulator Target Bundle": "com.raywenderlich.RayWonders", "aps": { "alert": { "title": "Hindi language support added!", "body": "Checkout RayWonders in Hindi!" } }}
Questo è un semplice payload di notifica push visibile con un title
e un body
. Il Simulator Target Bundle
è una chiave speciale. Specifica l’ID del bundle dell’app che dovrebbe ricevere la notifica.
Prima di provare il payload, devi prima concedere il permesso di notifica nell’app.
Segui questi passi:
- Apri RayWonders nel simulatore Demo.
- Toccare l’icona della campana in alto a destra nella scheda Foto.
- Selezionare Consenti nella richiesta di autorizzazione di notifica.
- Selezionare Dispositivo ▸ Casa dal menu del simulatore per mettere l’applicazione in background.
In seguito, trascinare e rilasciare il file RayWondersPushNotification.apns sul simulatore Demo.
Ta-da! Appare una notifica push visibile. È stato facile! Tieni presente che un simulatore può solo simulare una notifica push. Per testare una vera notifica push ricevuta dal server di notifica push di Apple è necessario un dispositivo fisico.
Per saperne di più sulle notifiche push, leggete questo Tutorial sulle notifiche push: Getting Started.
Prossimo, imparerai come fare lo zoom.
Zooming In and Out
Apri RayWonders nel simulatore. Passa alla scheda Mappa. La mappa è centrata e ingrandita su una meraviglia del mondo. Dove sono le altre meraviglie del mondo?
Per vedere la vista del mondo è necessario zoomare. Clicca e trascina tenendo premuto il tasto Opzione.
Cliccare e trascinare è fantastico, ma può diventare presto noioso. In seguito, imparerai un modo più veloce per andare in una posizione.
Simulare una posizione
Il simulatore fornisce un modo semplice per simulare una posizione. Per prima cosa, è necessario concedere i permessi di localizzazione in RayWonders.
Seguite questi passi:
- Apri RayWonders nel simulatore e passa alla scheda Mappa.
- Tocca il pulsante Start Location Services nella scheda Mappa.
- Selezionare l’autorizzazione Allow While Using App.
Ora, per simulare la posizione:
- Selezionare Features ▸ Location ▸ Custom Location dal menu Simulator.
- Inserisci 41.8902142 come latitudine e 12.4900422 come longitudine.
- Clicca OK.
Questo ti porta direttamente al Colosseo sulla mappa – il tuo viaggio più veloce di sempre!
Tuttavia, inserire le coordinate di ogni luogo da simulare è un compito piuttosto impegnativo per la memoria – la tua memoria, intendo -. In seguito, imparerete una soluzione più semplice a questo problema.
Condividere i luoghi dall’app Mappe
L’app Mappe su macOS fornisce un modo semplice per condividere i luoghi con il tuo simulatore.
Segui questi passi:
- Apri l’app Mappe.
- Inserisci Machu Picchu nel testo di ricerca.
- Fai clic sul pulsante Condividi accanto al campo di ricerca.
- Scegli Simulatore dal menu a tendina.
- Nella richiesta di posizione, seleziona Demo come simulatore.
- Clicca Invia.
Ora sei a Machu Picchu nella vista mappa del simulatore.
Congratulazioni! Hai appena creato un record mondiale come viaggiatore più veloce dal Colosseo a Machu Picchu! :]
Per saperne di più sulla gestione della posizione nella tua app, dai un’occhiata a MapKit e Core Location.
Ora, è il momento di smuovere le acque.
Simulare i gesti di scuotimento
I gesti di scuotimento sono ottimi spunti per spingere l’utente a dare un feedback in un’app. Ma come si può scuotere un simulatore? Per fortuna, scuotere rigorosamente il Mac non è la soluzione. Il simulatore fornisce un modo semplice.
Apri RayWonders sul simulatore Demo. Selezionare Device ▸ Shake dal menu Simulator.
Questo simula un gesto di scuotimento.
RayWonders rileva lo scuotimento e segnala un avviso all’utente. Potete rilevare e gestire i gesti di scuotimento nella vostra app implementando il metodo motionEnded(_:with:)
. Per saperne di più, consultate la documentazione Apple.
In seguito, imparerete come simulare un avviso di memoria.
Simulare un avviso di memoria
iOS invia un avviso all’app quando il suo utilizzo della memoria si avvicina al limite superiore del dispositivo. L’app deve rispondere eliminando i dati della cache, che possono essere ricreati in seguito.
Apri RayWonders sul simulatore Demo. Selezionate Debug ▸ Simula avviso memoria dal menu.
Questo simula un avviso memoria.
RayWonders mostra un avviso. Potete imparare di più sulla gestione degli avvisi di memoria in questa documentazione di Apple Responding to Memory Warnings.
Finora avete visto alcune utili opzioni del simulatore. Ce ne sono molte altre che non sono coperte in questo tutorial. Dovreste controllarle, a seconda delle esigenze della vostra applicazione. Alcune di queste opzioni includono:
- Simulare la sincronizzazione di iCloud usando Features ▸ Trigger iCloud Sync.
- Simulare l’autorizzazione di Apple Pay usando Features ▸ Authorize Apple Pay.
- Trigger Siri usando Device ▸ Siri.
- Controlla il registro di sistema usando Debug ▸ Apri il registro di sistema.
In seguito, imparerai a interagire con i simulatori usando la riga di comando.
Organizzare i simulatori usando la riga di comando
Finora, hai creato e gestito i simulatori usando Xcode. Inoltre, hai anche imparato le varie opzioni del menu Simulator. Ora, imparerai a gestire e usare i simulatori dalla linea di comando.
Apri il Terminale. Inserisci il seguente comando:
xcrun simctl --help
e premi Invio.
L’opzione aiuto fornisce la lista di tutti i sottocomandi disponibili usando simctl.
Simctl è uno strumento che aiuta a gestire e interfacciarsi programmaticamente con il simulatore. Puoi accedere a simctl usando lo strumento a riga di comando xcrun.
Ora, esplorerai diversi di questi sottocomandi. Esegui i seguenti:
xcrun simctl list
Il comando list mostra la lista di tutti i dispositivi disponibili e i runtime.
Mostra anche lo stato attuale dei dispositivi, se è Booted o Shutdown.
In seguito, imparerete a creare e lanciare un simulatore dalla linea di comando.
Creare un simulatore dalla linea di comando
Prima di creare un nuovo simulatore, cancellate il simulatore Demo creato tramite Xcode. Inserisci il seguente:
xcrun simctl delete Demo
Il comando delete identifica un simulatore e lo elimina. Ora, create un nuovo simulatore dalla linea di comando.
Inserite quanto segue:
xcrun simctl create Demo "iPhone 12 Pro" "iOS14.2"
Il comando create prende un tipo di dispositivo e un tempo di esecuzione e crea un simulatore. Questo crea un simulatore di iPhone 12 Pro con runtime iOS 14.2.
Ora, il terminale mostra l’identificatore unico del nuovo dispositivo.
Inserite quanto segue:
xcrun simctl boot Demo
Il comando avvia il simulatore Demo. Per default, è nello stato di Shutdown.
Ora, installate RayWonders usando la linea di comando. Avrai prima bisogno del bundle dell’applicazione. Seguite questi passi:
- Aprite il navigatore del progetto e selezionate RayWonders.app, che si trova nella cartella Products.
- Fate clic con il tasto destro e selezionate Show in Finder.
- Copia RayWonders nella tua home directory.
Aprire il Terminale e navigare nella home directory inserendo quanto segue:
cd ~
In seguito, eseguire quanto segue:
xcrun simctl install Demo RayWonders.app
Il comando install
installa RayWonders sul simulatore. Ottimo lavoro!
Si può anche lanciare l’applicazione usando simctl. Inserite quanto segue:
xcrun simctl launch Demo com.raywenderlich.RayWonders
Il comando launch prende l’ID del bundle dell’app come parametro. RayWonders viene lanciato nel simulatore Demo.
Congratulazioni! Ora hai creato, avviato, installato e lanciato un simulatore dalla riga di comando. Ecco alcune altre opzioni che potete provare:
- terminate: Questo termina un’applicazione usando l’identificatore del bundle.
- cancella: Questo cancella il contenuto del dispositivo.
- disinstalla: Questo disinstalla l’applicazione. Dovrai specificare l’identificatore del bundle dell’applicazione.
In seguito, imparerai alcuni comandi interessanti che sono disponibili per la tua applicazione.
Fare screenshot
Gli screenshot della tua applicazione possono essere utili in diversi scenari. Per esempio, avrete bisogno di screenshot quando presentate la vostra app su AppStore.
Inserite il seguente comando:
xcrun simctl io Demo screenshot screenshot.png --type="png"
Questo fa uno screenshot dello schermo corrente e lo salva nel file screenshot.png. Oltre al png, il comando screenshot
supporta altri formati di file, come TIFF, BMP, GIF e JPEG.
Uno screenshot può mostrare l’aspetto della vostra app, e un’immagine vale più di mille parole. Tuttavia, un video vale molto di più :]
Registrare video
Puoi registrare video della tua app usando simctl. Per iniziare la registrazione, inserite il seguente comando:
xcrun simctl io Demo recordVideo Demo.mov --codec="h264"
Interagite con RayWonders sul simulatore. Premi Control-C nel terminale quando hai finito. Questo salva il video in Demo.mov.
Inoltre, potete specificare il codec desiderato durante la registrazione. Il codec predefinito è hevc.
Il comando recordVideo
aiuta a non usare un player QuickTime per registrare un video della tua app.
Personalizzazione della barra di stato
Controlla la barra di stato dell’app nel simulatore. Puoi vedere che la batteria è piena, il dispositivo ha il miglior segnale e l’ora sul simulatore è l’ora locale di Mac. Cosa fate se volete sovrascrivere questi dati?
Entrare il seguente comando nel Terminale:
xcrun simctl status_bar Demo override \ --dataNetwork 4g --cellularBars 2 --batteryState charging \ --batteryLevel 25 --time 12:05
Questo sovrascrive la barra di stato per impostare:
- Rete dati come 4G
- Segnale cellulare a due barre
- Stato della batteria in carica e il livello della batteria al 25%
- Tempo sul simulatore a 12:05
Quando fate questo nel vostro progetto, potete impostare le informazioni della barra di stato su qualsiasi cosa vogliate.
Il comando status_bar
può essere molto utile quando si vuole personalizzare l’aspetto delle schermate e dei video delle app.
Quando avete finito, riportate la barra di stato all’aspetto predefinito inserendo quanto segue:
xcrun simctl status_bar Demo clear
Debuging e diagnosi
Simctl fornisce anche diversi comandi per aiutare il debug e la diagnosi dei problemi.
Torna al Terminale, e inserisci quanto segue:
xcrun simctl get_app_container Demo com.raywenderlich.RayWonders
get_app_container
stampa il percorso del bundle dell’applicazione.
Puoi ispezionare i dati all’interno dell’app container usando questo percorso. Inoltre, i log del vostro simulatore possono essere davvero utili quando si fa il debug dei problemi.
Ora, digitate quanto segue nel terminale:
xcrun simctl spawn Demo log stream
Questo avvia lo streaming di tutti i log dal simulatore Demo.
Tuttavia, questi possono essere troppi dati da ispezionare. Premi Control-C per fermare il flusso.
Prova quanto segue:
xcrun simctl spawn Demo log stream | grep com.raywenderlich.RayWonders
Questo filtra i log e visualizza solo quelli di RayWonders.
Come interagisci con l’applicazione, vedrai più logs visualizzati nel terminale. Questi log possono essere estremamente utili quando si segnala un bug o si fornisce un feedback ad Apple.
Scrivi quanto segue:
xcrun simctl diagnose
Il comando diagnose
raccoglie una serie di dati, inclusi i log e i crash. Genera anche file che possono aiutare Apple a risolvere i problemi. Per impostazione predefinita, i log raccolti sono per il dispositivo avviato. Specificando l’UDID di un dispositivo, puoi limitare la raccolta dei log a quel particolare dispositivo.
Ora sei diventato un esperto della linea di comando del simulatore! Puoi fare un ulteriore passo avanti automatizzando le azioni più comuni usando gli script Bash.
Automatizzare usando uno script Bash
Ora, creerai uno script per clonare un simulatore e lanciare RayWonders in un locale diverso.
Prima di tutto, aprite il Terminale ed inserite quanto segue:
touch sim_utility.sh
Questo crea un nuovo file con il nome sim_utility. L’estensione .sh denota che si tratta di uno script di shell.
Prossimo, esegui:
chmod +x sim_utility.sh
Questo rende il sim_utility.sh eseguibile in modo da poterlo eseguire.
Apri sim_utility.sh in un editor, e aggiungere quanto segue:
#!/bin/bash#1COMMAND="$1"SIMULATOR_NAME="$2"#2get_id_of_simulator() { #TODO}get_status_of_simulator() { #TODO}launch() { #TODO}#3case $COMMAND in"launch") launch "$3" "$4" "$5" ;;*) launch_help exit 1 ;;esac
Ecco cosa succede:
- Lo script prende un nome di comando e un nome di simulatore come parametri della linea di comando.
-
get_id_of_simulator
get_status_of_simulator
elaunch
sono stub vuoti che verranno implementati successivamente. - Lo script attualmente supporta un comando chiamato
launch
. Illaunch
richiede tre parametri aggiuntivi, che implementerete presto.
In get_id_of_simulator
, sostituite #TODO
con quanto segue:
xcrun simctl list | grep "$SIMULATOR_NAME" | \awk 'match($0, /\((+)\)/) {print substr( $0, RSTART + 1, RLENGTH-2 )}'
get_id_of_simulator
cerca nella lista dei simulatori il nome specificato come parametro. Se trova una corrispondenza, l’operazione di sottostringa ottiene l’identificatore unico del simulatore.
Nel metodo get_status_of_simulator
, sostituire #TODO
con il seguente:
xcrun simctl list | grep "$SIMULATOR_NAME" | \awk 'match($0, /\((+)\)/) {print substr( $0, RSTART + 1, RLENGTH - 2 )}'
get_status_of_simulator
cerca un simulatore con un nome corrispondente nella lista dei dispositivi. Se trova una corrispondenza, ottiene lo stato del simulatore – avviato o spento. Userai questi nel launch
.
Implementazione del lancio
In launch
, sostituite #TODO
con quanto segue:
#1BUNDLE_ID="$1"LOCALE="$2"LANGUAGE="$3"CLONE_NAME="$LOCALE"#2SIMULATOR_ID=$(get_id_of_simulator)if ; then echo "No device matching the name: $SIMULATOR_NAME" returnfiecho "Simulator id: $SIMULATOR_ID"echo "Bundle id: $BUNDLE_ID"echo "Locale: $LOCALE"#3SIMULATOR_STATUS=$(get_status_of_simulator)echo "Simulator Status: $SIMULATOR_STATUS"if ; then echo "Making sure the device is shutdown first..." xcrun simctl shutdown "$SIMULATOR_NAME"fi#4echo "Cloning the device with name $LOCALE..."xcrun simctl clone "$SIMULATOR_NAME" "$CLONE_NAME"#5echo "Booting device..."xcrun simctl boot "$SIMULATOR_NAME"xcrun simctl boot "$CLONE_NAME"#6echo "Launching app..."xcrun simctl launch "$SIMULATOR_NAME" "$BUNDLE_ID"#7xcrun simctl launch "$CLONE_NAME" "$BUNDLE_ID" -AppleLocale "$LOCALE" \ -AppleLanguages "($LANGUAGE)"
Salvate il file. Ecco cosa fa questo, passo dopo passo. Esso:
- Dà parametri aggiuntivi a
launch
, incluso l’ID del bundle dell’applicazione, il locale e la lingua in cui lanciare l’applicazione. Dichiara una variabile localeCLONE_NAME
, che è il nome del dispositivo clonato. In questo caso, il nome del dispositivo clonato è il locale che avete specificato; - Ricerca l’ID del simulatore chiamando
get_id_of_simulator
. Poi, memorizza il risultato inSIMULATOR_ID
. Se non c’è nessun simulatore corrispondente, esce dal programma; - Ricerca lo stato del simulatore chiamando
get_status_of_simulator
. Se lo stato èBooted
, esegue il comandoshutdown
per spegnerlo. Per essere clonato, un dispositivo deve essere spento; - Clona il simulatore usando il comando
clone
; - Blocca sia il simulatore originale che quello clonato usando il comando
boot
; - Lancia l’applicazione sul simulatore originale usando il comando
launch
; - Lancia l’applicazione usando il comando
launch
sul simulatore clonato. Specifica il locale e la lingua in cui lanciare l’applicazione.
Lancio di RayWonders in un locale diverso
Apri il terminale ed esegui quanto segue:
./sim_utility.sh launch Demo com.raywenderlich.RayWonders hi_IN hi
RayWonders si lancia in Hindi su un simulatore clonato con il nome hi_IN.
Non dovrai più andare nelle impostazioni e cambiare la lingua del dispositivo per testare la tua app. Ora puoi vedere la tua app in più lingue contemporaneamente. Ottimo lavoro!
xcrun simctl list | grep Demo
nel terminale. Cancellate qualsiasi simulatore duplicato e provate di nuovo.RayWonders supporta anche alcune altre lingue. Eseguite quanto segue:
./sim_utility.sh launch Demo com.raywenderlich.RayWonders ja_Jp ja
RayWonders ora viene lanciato in giapponese su un nuovo simulatore.
Come sfida divertente, implementate altri due comandi nello script sim_utility.
- Cleanup: Questo cancella un simulatore dato un nome di simulatore.
- Help: Stampa un menu di tutti i comandi supportati dallo script.
Troverete la versione finale dello script con tutte queste opzioni implementate nella cartella Scripts nei materiali scaricati.
Dove andare da qui?
Scaricate il progetto cliccando sul pulsante Download Materials in cima o in fondo a questa pagina.
In questo tutorial, hai imparato tonnellate di utili opzioni del simulatore e della linea di comando. Per saperne di più, controlla questi video del WWDC:
- Utilizzare al massimo il simulatore
- Diventare un esperto del simulatore
Spero che questo tutorial ti sia piaciuto. Se hai domande o commenti, partecipa alla discussione sul forum qui sotto.
raywenderlich.com Weekly
La newsletter di raywenderlich.com è il modo più semplice per rimanere aggiornato su tutto ciò che devi sapere come sviluppatore mobile.
Ottieni un digest settimanale dei nostri tutorial e corsi, e ricevi gratuitamente un corso di approfondimento via email come bonus!
Valutazione media
5/5
Aggiungi una valutazione per questo contenuto
Accedi per aggiungere una valutazione