Prise en charge de l’extension Xamarin.Mac

Dans Xamarin.Mac 2.10, la prise en charge a été ajoutée pour plusieurs points d’extension macOS :

  • Identificateur
  • Partager
  • Aujourd’hui

Limitations et problèmes connus

Voici les limitations et les problèmes connus qui peuvent se produire lors du développement d’extensions dans Xamarin.Mac :

  • Il n’existe actuellement aucune prise en charge du débogage dans Visual Studio pour Mac. Tout le débogage doit être effectué via NSLog et la console. Pour plus d’informations, consultez la section conseils ci-dessous.
  • Les extensions doivent être contenues dans une application hôte, qui s’exécute une seule fois avec s’inscrire auprès du système. Ils doivent ensuite être activés dans la section Extension de Préférences système.
  • Certains plantages d’extension peuvent déstabiliser l’application hôte et provoquer un comportement étrange. En particulier, Finder et la section Aujourd’hui du Centre de notifications peuvent devenir « bloqués » et ne plus répondre. Cela a également été expérimenté dans les projets d’extension dans Xcode et n’apparaît actuellement pas lié à Xamarin.Mac. Souvent, cela s’affiche dans le journal système (via la console, consultez Conseils pour plus d’informations) imprimant des messages d’erreur répétés. Le redémarrage de macOS semble résoudre ce problème.

Conseils

Les conseils suivants peuvent être utiles lors de l’utilisation d’extensions dans Xamarin.Mac :

  • Étant donné que Xamarin.Mac ne prend actuellement pas en charge les extensions de débogage, l’expérience de débogage dépend principalement de l’exécution et printf des instructions similaires. Toutefois, les extensions s’exécutent dans un processus de bac à sable( sandbox) et n’agissent donc Console.WriteLine pas comme dans d’autres applications Xamarin.Mac. L’appel NSLog direct génère les messages de débogage dans le journal système.

  • Toute exception non interceptée bloque le processus d’extension, fournissant seulement une petite quantité d’informations utiles dans le journal système. L’encapsulation du code gênant dans un try/catch bloc (exception) qui NSLogest avant la nouvelle levée peut s’avérer utile.

  • Le journal système est accessible à partir de l’application console sous Utilitaires d’applications> :

    Journal système

  • Comme indiqué ci-dessus, l’exécution de l’application hôte d’extension l’inscrit auprès du système. Suppression de l’offre groupée d’applications avec annulation de son inscription.

  • Si des versions « errées » des extensions d’une application sont inscrites, utilisez la commande suivante pour les localiser (afin qu’elles puissent être supprimées) : plugin kit -mv

Procédure pas à pas et exemple d’application

Étant donné que le développeur créera et utilisera les extensions Xamarin.Mac de la même façon que les extensions Xamarin.iOS, reportez-vous à notre documentation Introduction aux extensions pour plus d’informations .

Vous trouverez ici un exemple de projet Xamarin.Mac contenant de petits exemples de travail de chaque type d’extension.

Résumé

Cet article a examiné rapidement l’utilisation des extensions dans une application Xamarin.Mac version 2.10 (et ultérieure).