Xamarin Hot Restart

Xamarin Hot Restart vous permet de tester rapidement les modifications apportées à votre application pendant le développement, notamment les modifications de code multifichiers, les ressources et les références. Il envoie les nouvelles modifications au bundle d’applications existant sur la cible de débogage, ce qui entraîne un cycle de génération et de déploiement beaucoup plus rapide.

Important

Le redémarrage à chaud de Xamarin est actuellement disponible dans Visual Studio 2019 version 16.5 stable et prend en charge les applications iOS à l’aide Xamarin.Formsde . La prise en charge des applications Visual Studio pour Mac et non-figureXamarin.Forms sur la feuille de route.

Spécifications

  • Visual Studio 2019 version 16.5 ou ultérieure
  • iTunes (Microsoft Store ou versions 64 bits)
  • Compte développeur Apple et inscription payante au programme développeur Apple

Configuration initiale

Notes

Le redémarrage à chaud de Xamarin est désactivé par défaut sur Visual Studio 16.8 et les versions antérieures. Vous pouvez l’activer sous Outils > Options > Environnement > Préversion Fonctionnalités > Activer le redémarrage à chaud de Xamarin. À compter de Visual Studio 16.9, le redémarrage à chaud de Xamarin est activé par défaut et peut être désactivé à partir des options Outils >> Xamarin > iOS Paramètres > Activer le redémarrage à chaud.

  1. Vérifiez que le projet iOS est défini comme projet de démarrage et que la configuration de build est définie sur Déboguer|iPhone.

    1. S’il s’agit d’un projet existant, accédez à Générer > Configuration Manager... et vérifiez que Déployer est activé pour le projet iOS.
  2. Sélectionnez et cliquez sur Appareil local dans la barre d’outils pour lancer l’Assistant d’installation :

    Capture d’écran de la barre d’outils Visual Studio avec l’appareil local défini comme cible de débogage.

  3. Si iTunes n’est pas installé, cliquez sur Télécharger iTunes pour télécharger le programme d’installation. Cliquez sur Suivant quand l'installation d’iTunes est terminée.

  4. Connectez un appareil iOS à votre ordinateur. Si un appareil était déjà branché, débranchez-le, puis reconnectez-le. Le nom de l’appareil apparaît dans l’Assistant une fois qu’il est détecté. Cliquez sur Suivant.

  5. Entrez les informations d’identification de votre compte de développeur Apple, puis cliquez sur Suivant.

  6. Sélectionnez une équipe de développement dans le menu déroulant afin d’activer le provisionnement automatique dans le projet. Cliquez sur Terminer.

Notes

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 bons profils de provisionnement sont présents.

Utiliser Xamarin Hot Restart

Après la configuration initiale, votre appareil connecté apparaît dans le menu déroulant de la cible de débogage. Pour déboguer votre application, sélectionnez votre appareil dans le menu déroulant et cliquez sur le bouton Exécuter. Vous pouvez voir un message dans Visual Studio vous demandant de lancer manuellement l’application sur l’appareil pour démarrer la session de débogage.

Vous pouvez apporter des modifications à vos fichiers de code pendant le débogage, puis appuyer sur le bouton Redémarrer dans la barre d’outils de débogage ou utiliser Ctrl+Maj+F5 pour redémarrer la session de débogage avec les nouvelles modifications appliquées :

Capture d’écran de la barre d’outils de débogage avec le bouton de redémarrage sélectionné.

Vous pouvez également utiliser le symbole de HOTRESTART préprocesseur pour empêcher l’exécution d’un certain code lors du débogage avec Xamarin Hot Restart.

Limites

  • Seules les applications iOS créées avec Xamarin.Forms et les appareils iOS sont actuellement prises en charge.
  • Seuls les appareils iOS 64 bits sont pris en charge. Depuis iOS 11, Apple n’autorise plus l’exécution d’applications iOS sur l’architecture 32 bits (appareils antérieurs à l’iPhone 5s).
  • Les fichiers Storyboard et XIB ne sont pas pris en charge et l’application peut planter si elle tente de les charger au moment de l’exécution. Utilisez le symbole de HOTRESTART préprocesseur pour empêcher l’exécution de ce code.
  • Les infrastructures et les bibliothèques iOS statiques ne sont pas prises en charge et vous pouvez rencontrer des erreurs ou des incidents d’exécution si votre application tente de les charger. Utilisez le symbole de HOTRESTART préprocesseur pour empêcher l’exécution de ce code. Les bibliothèques iOS dynamiques sont prises en charge.
  • Vous ne pouvez pas utiliser Xamarin Hot Restart pour créer des bundles d’applications en vue d’une publication. Vous aurez toujours d’un ordinateur Mac pour la compilation, la signature et le déploiement complets de votre application en production.
  • Les catalogues de ressources ne sont actuellement pas pris en charge. Lors de l’utilisation du redémarrage à chaud, votre application affiche l’icône par défaut et l’écran de lancement des applications Xamarin. Lorsqu’ils sont associés à un Mac ou qu’ils sont développés sur un Mac, vos catalogues de ressources fonctionnent.

Dépanner

  • Un problème connu est que l’activation de builds spécifiques à l’appareil empêche l’application d’entrer en mode débogage. La solution de contournement consiste à désactiver cette option sous Propriétés > , build iOS et réessayer le débogage. Ceci fera l’objet d’un correctif dans une version future.
  • Si l’application est déjà présente sur l’appareil, la tentative de déploiement avec Hot Restart peut échouer avec une erreur AMDeviceStartHouseArrestService. La solution de contournement consiste à désinstaller l’application de l’appareil, puis à la redéployer.
  • La saisie d’un ID Apple qui ne fait pas partie du programme développeur Apple peut entraîner l’erreur suivante : Authentication Error. Xcode 7.3 or later is required to continue developing with your Apple ID. Vous devez disposer d’un compte développeur Apple valide pour utiliser le redémarrage à chaud Xamarin sur les appareils iOS.

Pour signaler d’autres problèmes, utilisez l’outil de commentaires dans l’aide Envoyer > des commentaires > Signaler un problème.