Le simulateur Xcode est l’un des outils les plus utilisés par les développeurs. Exécuter et tester des apps sur le simulateur fait désormais partie de la routine quotidienne de tout développeur. Se familiariser avec les différentes options du simulateur est vital pour tout développeur. Saviez-vous que vous pouvez également créer et configurer des simulateurs à partir de la ligne de commande ? Dans ce tutoriel, vous apprendrez :
- Ce qu’est un simulateur
- Un aperçu des options de simulateur utiles
- Créer et configurer des simulateurs à partir de la ligne de commande
- Diffuser et capturer des journaux à l’aide de la ligne de commande
- Créer un script Bash pour automatiser le lancement de l’application sur un simulateur dans différentes locales.
Mise en route
Téléchargez le projet en cliquant sur le bouton Télécharger le matériel en haut ou en bas de cette page. Ouvrez le projet RayWonders. Construisez et exécutez.
Cette application comporte deux onglets – Photo et Carte. L’onglet Photo présente des photos des merveilles du monde. En tapant sur une photo, on obtient une vue détaillée de sa description. L’onglet Carte affiche les photos des merveilles du monde sous forme d’annotations sur une carte. C’est l’un des rares tutoriels de raywenderlich.com où vous ne modifierez pas le projet. Au contraire, vous utiliserez cette application comme base pour apprendre les différentes options du simulateur. Avant de vous lancer dans votre tour du monde, vous devrez comprendre ce qu’est un simulateur.
Qu’est-ce qu’un simulateur ?
Le simulateur est un outil formidable pour simuler iOS, iPadOS, tvOS et watchOS sur le Mac. Il aide au prototypage rapide et au test des builds en simulant différents appareils. À un niveau plus technique, un simulateur est un espace utilisateur distinct qui s’exécute sur le noyau macOS.
L’espace utilisateur est la mémoire système allouée pour exécuter des applications, tandis que l’espace noyau est la mémoire système allouée pour exécuter le noyau du système d’exploitation et les pilotes de périphériques. Le lancement d’un nouveau simulateur crée un espace utilisateur distinct.
Le noyau est un composant central du système d’exploitation. Il facilite les interactions entre les composants matériels et logiciels. Il est responsable de la gestion du matériel, de l’allocation de la mémoire et de l’arbitrage entre les processus.
L’un de ces processus – Daemon – s’exécute en arrière-plan. launchd, cfprefsd, distnoted sont quelques-uns des daemons du système.
Exécuter une application sur un appareil et sur un simulateur revient-il au même ? C’est ce que vous apprendrez dans la suite de cet article.
Exécuter une app sur un appareil vs un simulateur
Tester des apps sur un simulateur est très pratique. Cependant, il existe quelques différences clés entre l’exécution d’apps sur un appareil et sur un simulateur.
Performances informatiques
Les simulateurs partagent les mêmes ressources informatiques avec le Mac. Cela inclut la mémoire, le processeur et la connexion réseau. En revanche, les appareils physiques ont moins de mémoire et de puissance de calcul par rapport à un Mac. De plus, le réseau peut être une bête imprévisible sur l’appareil physique.
Affichage
La résolution et la gamme de couleurs sur un Mac et sur l’appareil physique peuvent différer, ce qui fait apparaître les images et le texte en dents de scie. Vous apprendrez comment simuler la taille exacte de l’appareil physique plus tard dans ce tutoriel.
Limitations du matériel
Certains composants matériels ne sont pas pris en charge dans un simulateur. Ceux-ci incluent :
- Bluetooth
- Caméra
- Capteurs de mouvement tels que l’accéléromètre et le gyroscope
- Capteur de proximité
Limitations du framework
Quelques frameworks ne sont pas pris en charge dans le simulateur. Il s’agit notamment de :
- ARKit
- HomeKit
- IOSurface
- MessageUI
Pour une liste plus exhaustive de toutes les différences, veuillez vous référer à la documentation en sélectionnant Aide ▸ Aide du simulateur dans le menu Simulateur.
Après cela, vous apprendrez à organiser les simulateurs.
Organiser les simulateurs à l’aide de Xcode
Xcode est livré avec un ensemble de simulateurs par défaut. Pour afficher une liste de ces simulateurs, suivez ces étapes :
- Ouvrir Xcode.
- Sélectionner l’option de menu Fenêtre.
- Choisir le menu Appareils et simulateurs.
- Sélectionnez l’onglet Simulateurs.
Vous verrez une liste de simulateurs qui ont été livrés avec Xcode. Si vous avez téléchargé d’autres runtimes dans le passé, vous verrez également ces simulateurs associés.
Maintenant, vous allez créer un nouveau simulateur avec un nom personnalisé.
Suivez ces étapes :
- Appuyez sur le bouton + en bas à gauche.
- Définissez le nom du simulateur comme Demo.
- Sélectionnez l’iPhone 12 Pro comme type de périphérique.
- Sélectionnez iOS 14.2 comme version du système d’exploitation.
- Appuyez sur Créer.
Cela crée un nouveau simulateur avec le nom Demo, que vous pouvez maintenant trouver dans la liste des simulateurs.
Décochez la case Afficher comme destination d’exécution pour le simulateur Demo.
Ceci masque le simulateur. Il n’apparaîtra pas dans la liste des simulateurs à côté du schéma d’application.
Contrôlez-cliquez sur le simulateur de démonstration. Plusieurs options apparaissent, comme Supprimer et Renommer.
Allez-y et supprimez le simulateur Démo en cliquant sur Supprimer. Ne vous inquiétez pas, vous le créerez en utilisant une autre méthode très bientôt.
L’exécution d’anciens runtimes
Parfois, vous devrez exécuter votre application sur d’anciennes versions de runtimes.
Vous pouvez télécharger des runtimes plus anciens en sélectionnant Télécharger plus de runtimes dans la liste déroulante Version du système d’exploitation lors de la création d’un nouveau simulateur.
Vous pouvez également télécharger plus de runtimes à partir de la fenêtre Composants. Sélectionnez Xcode ▸ Préférences ▸ Option Composants.
Cette fenêtre affiche la liste du runtime du simulateur téléchargé ainsi que d’autres runtimes disponibles au téléchargement.
Après cela, vous apprendrez une autre façon de créer des simulateurs.
Créer des simulateurs à partir du menu du simulateur
Construire et exécuter.
Lorsque le simulateur est en cours d’exécution, suivez les étapes suivantes :
- Sélectionnez Fichier ▸ Nouveau simulateur dans le menu du simulateur.
- Entrez Demo comme nom du simulateur.
- Sélectionnez iPhone 12 Pro comme type d’appareil.
- Sélectionnez iOS 14.2 comme version.
- Cliquez sur Créer.
Ouvrir le simulateur en suivant ces étapes :
- Sélectionner Fichier ▸ Ouvrir le simulateur dans le menu.
- Sélectionner le temps d’exécution iOS 14.2.
- Choisissez le simulateur de démonstration.
Ceci lance le simulateur de démonstration.
C’était rapide et facile ! Ensuite, vous allez découvrir les différentes options de taille du simulateur.
Comparer les options de taille du simulateur
Vous pouvez redimensionner un simulateur en cliquant et en le faisant glisser depuis l’un des quatre coins. Les options du menu Fenêtre fournissent quatre options de mise à l’échelle.
Taille physique
La taille physique redimensionne le simulateur pour qu’il corresponde à la taille réelle de l’appareil. Cela permet de visualiser l’aspect de votre application sur différentes tailles d’écran.
Point précis
Le mode point précis dimensionne la fenêtre de sorte que le contenu ait la même taille sur des appareils ayant des facteurs d’échelle différents. Par conséquent, une image sur un appareil avec un affichage 3x apparaît avec la même taille qu’un affichage 2x.
Pixel Accurate
Dans ce mode, la taille de la fenêtre passe au même nombre de pixels que l’appareil physique. Chaque pixel du périphérique simulé correspond à un pixel sur l’écran de votre Mac. Ainsi, les simulateurs apparaissent plus grands à l’écran si l’écran de votre Mac a une densité de pixels inférieure à celle du périphérique simulé. Vous pouvez utiliser ce mode pour vérifier l’alignement des images et des contrôles dans votre application.
Fit Screen
Ceci redimensionne le simulateur à la taille de l’écran de votre Mac.
Après cela, vous apprendrez les différentes options proposées dans un simulateur.
Les animations lentes
Les animations font partie intégrante de l’expérience d’une application. Construisez et exécutez RayWonders dans le simulateur de démonstration.
Tapez sur l’onglet Photos. Ensuite, appuyez sur une photo de l’une des merveilles du monde pour présenter une vue de détails sur le lieu. Rejetez la vue en la faisant glisser vers le bas.
Pour simuler des animations lentes, sélectionnez l’option Debug ▸ Animations lentes dans le menu du simulateur.
Tapez à nouveau sur la photo. La vue s’anime maintenant lentement.
Voir les animations lentement peut aider à apporter de la clarté. En outre, cela peut aider à examiner les problèmes de rendu et de performance.
A la suite, vous apprendrez à simuler le mode sombre. Avant de poursuivre, désactivez les animations lentes en désélectionnant l’option de menu Debug ▸ Animations lentes.
Mode sombre
Le mode sombre offre une excellente expérience de visualisation dans les environnements à faible luminosité. Le simulateur offre une option pour afficher votre application en mode sombre.
Sélectionnez Features ▸ Toggle Appearance. Cela permet de basculer l’apparence en mode sombre. Maintenant, appuyez sur l’onglet Carte dans RayWonders.
Vous remarquerez que la carte a pris un aspect sombre. Facile, n’est-ce pas ? C’est un moyen pratique de tester votre application en mode sombre.
Pour que l’apparence redevienne celle par défaut, désélectionnez Fonctionnalités ▸ Basculer l’apparence. Pour savoir comment prendre en charge le mode sombre, consultez la rubrique Prise en charge du mode sombre : Adapter votre application pour prendre en charge le mode sombre.
Après, vous apprendrez à simuler les notifications push !
Simuler les notifications push
Les notifications push sont un excellent moyen d’informer vos utilisateurs des nouvelles mises à jour de contenu de votre application. Dans le passé, tester les notifications push était un défi. Vous aviez besoin d’un appareil physique pour tester les notifications push. À partir de Xcode 11.4, vous pouvez simuler les notifications push sur un simulateur.
Créer un fichier nommé RayWondersPushNotification.apns en utilisant ce qui suit :
{ "Simulator Target Bundle": "com.raywenderlich.RayWonders", "aps": { "alert": { "title": "Hindi language support added!", "body": "Checkout RayWonders in Hindi!" } }}
C’est une charge utile de notification push simple et visible avec un title
et un body
. Le Simulator Target Bundle
est une clé spéciale. Elle spécifie l’ID du bundle de l’app qui doit recevoir la notification.
Avant d’essayer la charge utile, vous devez d’abord accorder la permission de notification dans l’app.
Suivez les étapes suivantes :
- Ouvrir RayWonders dans le simulateur de démonstration.
- Tapez sur l’icône de la cloche en haut à droite dans l’onglet Photos.
- Sélectionnez Autoriser dans l’invite d’autorisation de notification.
- Sélectionnez Appareil ▸ Maison dans le menu du simulateur pour mettre l’application en arrière-plan.
Suivant, faites glisser et déposez le fichier RayWondersPushNotification.apns sur le simulateur Demo.
Ta-da ! Une notification push visible apparaît. C’était facile ! Gardez à l’esprit qu’un simulateur ne peut que simuler une notification push. Pour tester une notification push réelle reçue du serveur de notification push d’Apple, il faut un appareil physique.
Pour en savoir plus sur les notifications push, lisez ce tutoriel sur les notifications push : Démarrage.
Après, vous apprendrez à zoomer.
Zoomer et dézoomer
Ouvrir RayWonders dans le simulateur. Passez à l’onglet Carte. La carte est centrée et zoomée sur une merveille du monde. Où sont les autres merveilles du monde ?
Vous devrez faire un zoom arrière pour voir la vue du monde. Cliquez et faites glisser en maintenant la touche Option enfoncée.
Cliquer et faire glisser, c’est bien, mais cela peut vite devenir lassant. Ensuite, vous apprendrez un moyen plus rapide d’aller à un emplacement.
Simuler un emplacement
Le simulateur offre un moyen facile de simuler un emplacement. Tout d’abord, vous devez accorder des autorisations de localisation dans RayWonders.
Suivez ces étapes :
- Ouvrir RayWonders dans le simulateur et passer à l’onglet Carte.
- Taper sur le bouton Démarrer les services de localisation dans l’onglet Carte.
- Sélectionnez la permission Autoriser pendant l’utilisation de l’application.
Maintenant, pour simuler la localisation :
- Sélectionnez Fonctionnalités ▸ Localisation ▸ Localisation personnalisée dans le menu du simulateur.
- Entrez 41,8902142 comme latitude et 12,4900422 comme longitude.
- Cliquez sur OK.
Ceci vous amène directement au Colisée sur la carte – votre voyage le plus rapide !
Cependant, la saisie des coordonnées de chaque lieu à simuler est une tâche assez gourmande en mémoire – votre mémoire, bien sûr. Dans la suite, vous apprendrez une solution plus simple à ce problème.
Partager des emplacements à partir de l’app Maps
L’app Maps sur macOS offre un moyen facile de partager des emplacements avec votre simulateur.
Suivez ces étapes :
- Ouvrir l’app Maps.
- Entrez Machu Picchu dans le texte de recherche.
- Cliquez sur le bouton Partager à côté du champ de recherche.
- Choisissez Simulateur dans la liste déroulante.
- Dans l’invite de localisation, sélectionnez Demo comme simulateur.
- Cliquez sur Envoyer.
Vous êtes maintenant à Machu Picchu dans la vue cartographique du simulateur.
Félicitations ! Vous venez de créer un record du monde en tant que voyageur le plus rapide du Colisée au Machu Picchu ! :]
Pour en savoir plus sur la gestion de la localisation dans votre application, consultez MapKit et Core Location.
Maintenant, il est temps de secouer les choses.
Simuler le geste de secouer
Les gestes de secouer sont d’excellents indices pour inciter l’utilisateur à donner son avis dans une app. Mais comment secouer un simulateur ? Heureusement, secouer rigoureusement le Mac n’est pas la solution. Le simulateur offre un moyen facile.
Ouvrez RayWonders sur le simulateur de démonstration. Sélectionnez Dispositif ▸ Secouer dans le menu du simulateur.
Ceci simule un geste de secousse.
RayWonders détecte la secousse et déclenche une alerte à l’utilisateur. Vous pouvez détecter et gérer les gestes de secousse dans votre application en mettant en œuvre la méthode motionEnded(_:with:)
. Pour en savoir plus, consultez la documentation d’Apple.
Après, vous apprendrez à simuler un avertissement de mémoire.
Simuler un avertissement de mémoire
iOS envoie un avertissement à l’app lorsque son utilisation de la mémoire approche la limite supérieure de l’appareil. L’app doit répondre en purgeant les données du cache, qui peuvent être recréées ultérieurement.
Ouvrez RayWonders sur le simulateur de démonstration. Sélectionnez Debug ▸ Simuler un avertissement de mémoire dans le menu.
Ceci simule un avertissement de mémoire.
RayWonders affiche une alerte. Vous pouvez en savoir plus sur la gestion des avertissements de mémoire dans cette documentation Apple Répondre aux avertissements de mémoire.
Jusqu’ici, vous avez vu quelques options de simulateur utiles. Il en existe plusieurs autres qui ne sont pas abordées dans ce tutoriel. Vous devriez les vérifier, en fonction des besoins de votre application. Certaines de ces options comprennent :
- Simuler la synchronisation iCloud en utilisant Fonctionnalités ▸ Déclencher la synchronisation iCloud.
- Simuler l’autorisation Apple Pay en utilisant Fonctionnalités ▸ Autoriser Apple Pay.
- Déclencher Siri en utilisant Appareil ▸ Siri.
- Vérifier le journal système en utilisant Debug ▸ Ouvrir le journal système.
A la suite, vous apprendrez à interagir avec les simulateurs à l’aide de la ligne de commande.
Organiser les simulateurs à l’aide de la ligne de commande
Jusqu’à présent, vous avez créé et géré des simulateurs à l’aide de Xcode. En outre, vous avez également appris les différentes options du menu Simulateur. Maintenant, vous allez apprendre à gérer et à utiliser les simulateurs à partir de la ligne de commande.
Ouvrez le Terminal. Saisissez la commande suivante :
xcrun simctl --help
et appuyez sur Entrée.
L’option d’aide fournit la liste de toutes les sous-commandes disponibles à l’aide de simctl.
Simctl est un outil d’aide à la gestion et à l’interface programmatique avec le simulateur. Vous pouvez accéder à simctl en utilisant l’outil de ligne de commande xcrun.
Maintenant, vous allez explorer plusieurs de ces sous-commandes. Exécutez les commandes suivantes :
xcrun simctl list
La commande affiche la liste de tous les périphériques disponibles et des runtimes.
Elle affiche également l’état actuel des périphériques, à savoir s’il s’agit de Booted ou Shutdown.
Après cela, vous apprendrez à créer et à lancer un simulateur à partir de la ligne de commande.
Créer un simulateur à partir de la ligne de commande
Avant de créer un nouveau simulateur, supprimez le simulateur Demo créé via Xcode. Saisissez ce qui suit :
xcrun simctl delete Demo
La commande delete identifie un simulateur et le supprime. Maintenant, créez un nouveau simulateur à partir de la ligne de commande.
Entrez ce qui suit :
xcrun simctl create Demo "iPhone 12 Pro" "iOS14.2"
La commande create prend en compte un type de périphérique et un runtime et crée un simulateur. Ceci crée un simulateur iPhone 12 Pro avec le runtime iOS 14.2.
Maintenant, Terminal affiche l’identifiant unique du nouveau périphérique.
Entrez ce qui suit:
xcrun simctl boot Demo
Le démarre le simulateur Demo. Par défaut, il est dans l’état d’arrêt.
Maintenant, installez RayWonders en utilisant la ligne de commande. Vous aurez d’abord besoin du bundle de l’application. Suivez ces étapes :
- Ouvrir le navigateur de projet et sélectionner RayWonders.app, situé dans le dossier Products.
- Cliquez avec le bouton droit de la souris et sélectionnez Show in Finder.
- Copier RayWonders dans votre répertoire personnel.
Ouvrez Terminal et naviguez dans le répertoire personnel en saisissant ce qui suit :
cd ~
Puis, exécutez ce qui suit :
xcrun simctl install Demo RayWonders.app
La commande install
installe RayWonders sur le simulateur. Bravo !
Vous pouvez même lancer l’application en utilisant simctl. Saisissez ce qui suit :
xcrun simctl launch Demo com.raywenderlich.RayWonders
La commande launch prend l’ID du bundle de l’app comme paramètre. RayWonders se lance dans le simulateur Demo.
Félicitations ! Vous avez maintenant créé, démarré, installé et lancé un simulateur à partir de la ligne de commande. Voici quelques autres options que vous pouvez essayer :
- terminer : Ceci met fin à une application en utilisant l’identifiant du bundle.
- effacer : Ceci efface le contenu du dispositif.
- désinstaller : Ceci désinstalle l’application. Vous devrez spécifier l’identifiant de bundle de l’application.
A la suite, vous apprendrez quelques commandes cool qui sont disponibles pour votre application.
Prise de captures d’écran
Les captures d’écran de votre application peuvent être utiles dans plusieurs scénarios. Par exemple, vous aurez besoin de captures d’écran lors de la soumission de votre application dans AppStore.
Entrez la commande suivante :
xcrun simctl io Demo screenshot screenshot.png --type="png"
Cette commande prend une capture d’écran de l’écran actuel et l’enregistre dans le fichier screenshot.png. En plus d’un png, screenshot
commande prend en charge d’autres formats de fichiers, tels que TIFF, BMP, GIF et JPEG.
Une capture d’écran peut montrer à quoi ressemble votre application, et une image vaut mille mots. Cependant, une vidéo vaut beaucoup plus :]
Enregistrer une vidéo
Vous pouvez enregistrer des vidéos de votre app en utilisant simctl. Pour lancer l’enregistrement, entrez la commande suivante :
xcrun simctl io Demo recordVideo Demo.mov --codec="h264"
Interagissez avec RayWonders sur le simulateur. Appuyez sur Control-C dans le terminal lorsque vous avez terminé. Cela permet d’enregistrer la vidéo dans Demo.mov.
En outre, vous pouvez spécifier le codec souhaité lors de l’enregistrement. Le codec par défaut est hevc.
La recordVideo
commande permet d’éviter d’utiliser un lecteur QuickTime pour enregistrer une vidéo de votre application.
Personnaliser la barre d’état
Vérifiez la barre d’état de l’application dans le simulateur. Vous pouvez voir que la batterie est pleine, que l’appareil a le meilleur signal et que l’heure sur le simulateur est votre heure locale Mac. Que faites-vous si vous voulez passer outre ces éléments ?
Entrez la commande suivante dans Terminal:
xcrun simctl status_bar Demo override \ --dataNetwork 4g --cellularBars 2 --batteryState charging \ --batteryLevel 25 --time 12:05
Cela remplace la barre d’état pour définir:
- Réseau de données comme 4G
- Signal cellulaire à deux barres
- État de la batterie à charger et le niveau de la batterie à 25%
- Heure sur le simulateur à 12 :05
Lorsque vous faites cela dans votre propre projet, vous pouvez définir les informations de la barre d’état à ce que vous voulez.
La commande status_bar
peut être vraiment pratique lorsque vous voulez personnaliser l’apparence des captures d’écran et des vidéos de votre application.
Quand vous avez terminé, ramenez la barre d’état à l’apparence par défaut en entrant ce qui suit :
xcrun simctl status_bar Demo clear
Débogage et diagnostic
Simctl fournit également plusieurs commandes pour aider à déboguer et à diagnostiquer les problèmes.
Retournez dans Terminal, et entrez ce qui suit :
xcrun simctl get_app_container Demo com.raywenderlich.RayWonders
get_app_container
imprime le chemin du bundle d’applications.
Vous pouvez inspecter les données au sein du conteneur d’app en utilisant ce chemin. En outre, les journaux de votre simulateur peuvent être vraiment utiles pour déboguer les problèmes.
Maintenant, tapez ce qui suit dans Terminal:
xcrun simctl spawn Demo log stream
Cela commence à diffuser en continu tous les journaux du simulateur Demo.
Cependant, cela peut représenter trop de données à inspecter. Appuyez sur Control-C pour arrêter le flux.
Essayez ce qui suit :
xcrun simctl spawn Demo log stream | grep com.raywenderlich.RayWonders
Cela filtre les journaux et n’affiche que ceux de RayWonders.
Au fur et à mesure que vous interagissez avec l’appli, vous verrez davantage de journaux s’afficher dans le terminal. Ces journaux peuvent être extrêmement utiles lorsque vous déposez un bogue ou fournissez des commentaires à Apple.
Tapez ce qui suit :
xcrun simctl diagnose
La commande diagnose
collecte un tas de données, y compris les journaux et les plantages. Elle génère également des fichiers qui peuvent aider Apple à déboguer les problèmes. Par défaut, les journaux collectés concernent le périphérique démarré. En spécifiant l’UDID d’un appareil, vous pouvez contraindre la collecte des journaux à cet appareil particulier.
Vous êtes maintenant devenu un expert en ligne de commande de simulateur ! Vous pouvez aller plus loin en automatisant des actions courantes à l’aide de scripts Bash.
Automatisation à l’aide d’un script Bash
Maintenant, vous allez créer un script pour cloner un simulateur et lancer RayWonders dans un autre local.
D’abord, ouvrez Terminal, et entrez ce qui suit :
touch sim_utility.sh
Ceci crée un nouveau fichier portant le nom sim_utility. L’extension .sh indique qu’il s’agit d’un script shell.
Suivant, exécutez :
chmod +x sim_utility.sh
Cela rend le sim_utility.sh exécutable afin que vous puissiez l’exécuter.
Ouvrir sim_utility.sh dans un éditeur, et ajoutez ce qui suit :
#!/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
Voici ce qui se passe :
- Le script prend un nom de commande et un nom de simulateur comme paramètres de ligne de commande.
-
get_id_of_simulator
get_status_of_simulator
etlaunch
sont des stubs vides que vous implémenterez ensuite. - Le script prend actuellement en charge une commande nommée
launch
. Lalaunch
prend trois paramètres supplémentaires, que vous implémenterez bientôt.
Dans get_id_of_simulator
, remplacez #TODO
par ce qui suit :
xcrun simctl list | grep "$SIMULATOR_NAME" | \awk 'match($0, /\((+)\)/) {print substr( $0, RSTART + 1, RLENGTH-2 )}'
get_id_of_simulator
recherche dans la liste des simulateurs une correspondance avec le nom spécifié en paramètre. Si elle trouve une correspondance, l’opération de sous-chaîne obtient l’identifiant unique du simulateur.
Dans la méthode get_status_of_simulator
, remplacez #TODO
par ce qui suit :
xcrun simctl list | grep "$SIMULATOR_NAME" | \awk 'match($0, /\((+)\)/) {print substr( $0, RSTART + 1, RLENGTH - 2 )}'
get_status_of_simulator
recherche un simulateur dont le nom correspond dans la liste des dispositifs. S’il trouve une correspondance, il obtient l’état du simulateur – démarré ou arrêté. Vous utiliserez ces éléments dans la launch
.
Mise en œuvre du lancement
Dans launch
, remplacez #TODO
par ce qui suit :
#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)"
Enregistrez le fichier. Voici ce que cela fait, étape par étape. Il:
- Donne des paramètres supplémentaires à
launch
, notamment l’ID du bundle de l’application, la locale et la langue dans laquelle lancer votre application. Il déclare une variable localeCLONE_NAME
, qui est le nom de l’appareil cloné. Dans ce cas, le nom du dispositif cloné est la locale que vous spécifiez ; - Il récupère l’ID du simulateur en appelant
get_id_of_simulator
. Ensuite, il stocke le résultat dansSIMULATOR_ID
. S’il n’y a pas de simulateur correspondant, il quitte le programme; - Recherche le statut du simulateur en appelant
get_status_of_simulator
. Si le statut estBooted
, il exécute la commandeshutdown
pour l’arrêter. Pour être cloné, un périphérique doit être arrêté; - Clone le simulateur à l’aide de la commande
clone
; - Boote à la fois le simulateur d’origine et le simulateur cloné à l’aide de la commande
boot
; - Lance l’application sur le simulateur d’origine en utilisant la commande
launch
; - Lance l’application en utilisant la commande
launch
sur le simulateur cloné. Elle spécifie la locale et la langue dans lesquelles l’application doit être lancée.
Lancer RayWonders dans une localité différente
Ouvrir Terminal, et exécuter ce qui suit :
./sim_utility.sh launch Demo com.raywenderlich.RayWonders hi_IN hi
RayWonders se lance en hindi sur un simulateur cloné avec le nom hi_IN.
Non plus besoin d’aller dans les paramètres et de changer la langue de l’appareil pour tester votre application. Vous pouvez maintenant voir votre application dans plusieurs langues simultanément. Beau travail !
xcrun simctl list | grep Demo
dans le terminal. Supprimez tous les simulateurs en double et réessayez.RayWonders prend également en charge quelques autres langues. Exécutez ce qui suit :
./sim_utility.sh launch Demo com.raywenderlich.RayWonders ja_Jp ja
RayWonders se lance maintenant en japonais sur un nouveau simulateur.
En guise de défi amusant, implémentez deux commandes supplémentaires dans le script sim_utility.
- Cleanup : Ceci supprime un simulateur donné un nom de simulateur.
- Help : Ceci imprime un menu de toutes les commandes supportées par le script.
Vous trouverez la version finale du script avec toutes ces options implémentées dans le dossier Scripts dans les matériaux téléchargés.
Où aller à partir de là ?
Téléchargez le projet en cliquant sur le bouton Télécharger les matériaux en haut ou en bas de cette page.
Dans ce tutoriel, vous avez appris des tonnes d’options utiles du simulateur et de la ligne de commande. Pour en savoir plus, veuillez consulter ces vidéos de la WWDC :
- Tirer le meilleur parti du simulateur
- Devenir un expert du simulateur
J’espère que vous avez apprécié ce tutoriel. Si vous avez des questions ou des commentaires, rejoignez le forum de discussion ci-dessous.
raywenderlich.com Weekly
La newsletter raywenderlich.com est le moyen le plus simple de rester à jour sur tout ce que vous devez savoir en tant que développeur mobile.
Recevez un condensé hebdomadaire de nos tutoriels et cours, et recevez en prime un cours approfondi gratuit par e-mail !
Note moyenne
5/5
Ajouter une note pour ce contenu
Connectez-vous pour ajouter une note
.