Déployer une application iOS à l’aide du redémarrage à chaud
En règle générale, lors de la création d’une application, votre code est compilé et combiné avec d’autres ressources de projet pour générer un ensemble d’applications déployé sur votre simulateur ou appareil. Avec ce modèle, lorsque vous apportez une modification à votre application, un nouvel ensemble d’applications doit être généré et déployé. Même si les builds incrémentielles peuvent contribuer à réduire le temps de compilation, les déploiements ont généralement la même durée, quelle que soit la taille de la modification.
Le redémarrage à chaud de .NET Multi-platform App UI (.NET MAUI) vous permet de déployer rapidement une application .NET MAUI sur un appareil iOS local 64 bits à partir de Visual Studio 2022 sans hôte de build Mac. Il vous évite également de devoir régénérer un ensemble complet d’applications, car il envoie les modifications à l’ensemble d’applications existant et déjà présent sur votre appareil iOS connecté localement. Il prend en charge les modifications apportées aux fichiers de code, aux ressources et aux références de projet, ce qui vous permet de tester rapidement les modifications apportées à vos applications au cours de leur développement.
Important
Le redémarrage à chaud ne remplace pas l’expérience de build complète fournie par un hôte de build Mac. Ainsi, il permet de déployer uniquement des applications qui utilisent la configuration de build de débogage et ne prend pas en charge les bibliothèques statiques et les frameworks,les XCFrameworks ou les packages de ressources de liaison. Pour plus d’informations, consultez Limitations.
Il existe un certain nombre de conditions requises pour utiliser le redémarrage à chaud afin de déployer une application .NET MAUI sur un appareil iOS connecté localement :
- Vous devez utiliser Visual Studio 2022 version 17.3 ultérieure.
- Vous devez installer iTunes (Microsoft Store ou version 64 bits) sur votre ordinateur de développement.
- Vous devez possséder un compte Apple Developer et payer une inscription au programme Apple Developer Program.
Programme d’installation
Pour configurer le redémarrage à chaud, procédez comme suit :
Dans la barre d’outils Visual Studio, utilisez la liste déroulante Cible de débogage pour sélectionner Appareils locaux iOS, puis l’entrée Appareil local :
Dans la barre d’outils Visual Studio, sélectionnez Appareil local :
L’Assistant Redémarrage à chaud de l’installation apparaît et vous guide tout au long de la configuration d’un appareil iOS local pour le déploiement avec redémarrage à chaud.
Dans l’Assistant Redémarrage à chaud de l’installation, sélectionnez Suivant :
Si iTunes n’est pas installé, l’Assistant Installation vous invite à l’installer. Dans l’Assistant Redémarrage à chaud de l’installation, sélectionnez Télécharger iTunes :
Remarque
iTunes peut être installé à partir du Microsoft Store ou en le téléchargeant à partir d’Apple.
Patientez jusqu’à la fin du téléchargement d’iTunes, puis installez-le. Si vous l’installez à partir du Microsoft Store, une fois l’installation terminée, ouvrez-le, puis suivez les invites supplémentaires pour lui permettre de découvrir les appareils connectés localement.
Dans l’Assistant Redémarrage à chaud de l’installation, sélectionnez Suivant pour passer à l’étape suivante de l’Assistant qui vous invite à connecter un appareil iOS local :
Connectez votre appareil iOS à votre ordinateur de développement à l’aide d’un câble USB. Une invite peut apparaître sur votre appareil vous demandant de faire confiance à votre ordinateur de développement. Sur votre appareil, cliquez sur Faire confiance et suivez les invites supplémentaires de l’appareil, le cas échéant.
Dans l’Assistant Redémarrage à chaud de l’installation, sélectionnez Suivant une fois que votre appareil iOS local est détecté :
Remarque
Si l’Assistant Installation ne parvient pas à détecter votre appareil iOS local, déconnectez votre appareil iOS local de votre ordinateur de développement, puis reconnectez-le. De plus, assurez-vous qu’iTunes reconnaît votre appareil iOS local.
Dans l’Assistant Redémarrage à chaud de l’installation, cliquez sur le lien hypertexte Se connecter avec un compte individuel afin de configurer le redémarrage à chaud pour utiliser votre compte individuel Apple Developer Program :
La boîte de dialogue Compte individuel s’affiche.
Remarque
Vous pouvez également configurer le redémarrage à chaud pour utiliser un compte Apple Developer d’entreprise, cliquer sur le lien hypertexte Se connecter avec un compte d’entreprise et entrer vos informations d’identification dans la boîte de dialogue qui s’affiche. Passez ensuite à l’étape 12.
Créez une clé API App Store Connect. Cela vous oblige à disposer d’un compte Apple Developer et de payer une inscription au programme Apple Developer Program. Pour plus d’informations sur la création d’une clé API App Store Connect, consultez Creating API Keys for App Store Connect API sur developer.apple.com.
Dans la boîte de dialogue Compte individuel, entrez les données de votre clé API App Store Connect :
Les données Nom, ID d’émetteur et ID de clé sont disponibles dans App Store Connect en sélectionnant Utilisateurs et Accès, puis sous l’onglet Clés. La clé privée peut également être téléchargée à partir de cet emplacement :
Dans la boîte de dialogue Compte individuel, cliquez sur le bouton Ajouter. La boîte de dialogue Compte individuel se ferme.
Dans l’Assistant Redémarrage à chaud de l’installation, cliquez sur le bouton Terminer :
Votre compte Apple Developer Program est ajouté à Visual Studio et l’Assistant Redémarrage à chaud de l’installation ferme.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur votre projet et sélectionnez Propriétés.
Dans les propriétés du projet, développez iOS et sélectionnez Signature de bundle. Dans la liste déroulante Schéma, sélectionnez Provisionnement automatique, puis cliquez sur le lien hypertexte Configurer le provisionnement automatique :
La boîte de dialogue Configurer le provisionnement automatique s’affiche.
Dans la boîte de dialogue Configurer le provisionnement automatique, sélectionnez l’équipe de votre clé API Connect.
Visual Studio termine le processus de provisionnement automatique. Cliquez ensuite sur le bouton OK pour ignorer la boîte de dialogue Configurer le provisionnement automatique.
Remarque
Il est recommandé d’utiliser le provisionnement automatique afin que d’autres appareils iOS puissent être facilement configurés pour le déploiement. Toutefois, vous pouvez le désactiver et continuer à utiliser le provisionnement manuel si les profils de provisionnement appropriés sont présents sur votre ordinateur.
Déployer et déboguer à l’aide du redémarrage à chaud
Après l’installation initiale, votre appareil iOS connecté localement apparaît dans le menu déroulant de la cible de débogage. Pour déployer et déboguer votre application :
Vérifiez que votre appareil iOS connecté localement est déverrouillé.
Dans la barre d’outils Visual Studio, sélectionnez votre appareil iOS connecté localement dans la liste déroulante de la cible de débogage, puis cliquez sur le bouton Exécuter pour générer votre application et la déployer sur votre appareil iOS local :
Après le déploiement de votre application, Visual Studio affiche la boîte de dialogue Connexion du débogueur :
Lancez l’application sur votre appareil. Visual Studio connecte alors le débogueur à votre application en cours d’exécution et la boîte de dialogue Connexion du débogueur est ignorée.
Pendant que vous déboguez votre application, vous pouvez modifier votre code C# et appuyer sur le bouton Redémarrer dans la barre d’outils Visual Studio pour redémarrer votre session de débogage avec les nouvelles modifications appliquées :
Empêcher l’exécution du code
Le symbole de préprocesseur HOTRESTART
peut être utilisé pour empêcher l’exécution du code lorsque vous procédez au débogage avec redémarrage à chaud :
#if !HOTRESTART
// Code here won't be executed when debugging with hot restart
#endif
Activer le redémarrage à chaud
Le redémarrage à chaud est activé par défaut dans Visual Studio 2022. S’il a été désactivé, vous pouvez l’activer en sélectionnant Outils > Options dans la barre de menus de Visual Studio. Puis, dans la boîte de dialogue Options, développez Xamarin et sélectionnez Paramètres iOS. Vérifiez ensuite que la case Activer le redémarrage à chaud est cochée :
Limites
Certaines limitations s’appliquent lors de l’utilisation du redémarrage à chaud :
- Il ne peut être utilisé que pour déployer des applications qui utilisent la configuration de build de débogage. Vous avez toujours besoin d’un hôte de build Mac pour générer, signer et déployer votre application à des fins de production.
- Les fichiers Storyboard et XIB ne sont pas pris en charge et l’application peut se bloquer si elle tente de les charger au moment de l’exécution.
- Les bibliothèques iOS statiques et les frameworks contenant des bibliothèques statiques ne sont pas pris en charge ; vous pouvez rencontrer des erreurs d’exécution ou des blocages si votre application tente de les charger.
- Les XCFrameworks et les packages de ressources de liaison sont pris en charge tant qu’ils ne contiennent pas de bibliothèques iOS statiques ou de frameworks avec des bibliothèques statiques.
- Les catalogues de ressources ne sont pas pris en charge. Lorsque vous utilisez le redémarrage à chaud, votre application affiche une icône .NET et un écran de lancement.
Résolution des problèmes
iOS utilise un agent de surveillance qui surveille les temps de lancement ainsi que la réactivité des applications, et met fin aux applications qui ne répondent pas. Par exemple, l’agent de surveillance met fin aux applications qui bloquent le thread principal pendant une durée significative. Sur les anciens appareils iOS, l’agent de surveillance peut mettre fin à une application déployée à l’aide du redémarrage à chaud avant que le débogueur ne se soit connectée à celle-ci. La solution de contournement consiste à réduire la quantité de traitement effectuée dans le chemin de démarrage de l’application et à utiliser un appareil iOS plus récent.
Pour signaler d’autres problèmes, utilisez l’outil de commentaires dans Aide > Envoyer des commentaires > Signaler un problème.