Prise en charge de l’extension Xamarin.Mac

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

  • Finder
  • Partager
  • Aujourd’hui

Limitations et problèmes connus

Voici les limitations et connaître les problèmes 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 lorsqu’elles s’exécutent une seule fois avec l’inscription auprès du système. Ils doivent ensuite être activés dans la section Extension des préférences système.
  • Certains blocages 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 notification peuvent devenir « brouillés » et ne répondre pas. Cela a également été connu dans les projets d’extension dans Xcode et apparaît actuellement sans lien avec Xamarin.Mac. Souvent, vous pouvez le voir dans le journal système (via la console, voir Astuces pour plus d’informations) l’impression de messages d’erreur répétés. Le redémarrage de macOS s’affiche pour résoudre ce problème.

Conseils

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

  • Comme 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, ce Console.WriteLine qui n’agit 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 uniquement une petite quantité d’informations utiles dans le journal système. Encapsuler le code gênant dans un try/catch bloc (exception) qui NSLogest avant la levée de nouveau peut être 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 l’annulation de son inscription.

  • Si les versions « errants » 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

Étant donné que le développeur crée et fonctionne avec 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.

Résumé

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