Compatibilidad con las extensiones de Xamarin.Mac

En Xamarin.Mac 2.10 se agregó compatibilidad con varios puntos de extensión de macOS:

  • Buscador
  • Compartir
  • Hoy

Limitaciones y problemas conocidos

Estas son las limitaciones y los problemas conocidos que pueden producirse al desarrollar extensiones en Xamarin.Mac:

  • Actualmente no hay compatibilidad con la depuración en Visual Studio para Mac. Toda la depuración debe realizarse a través de NSLog y la consolade . Consulte la sección de sugerencias siguiente para obtener más información.
  • Las extensiones deben estar contenidas en una aplicación host, que cuando se ejecuta una vez con registro en el sistema. A continuación, deben habilitarse en la sección Extensión de Preferencias del sistema.
  • Algunos bloqueos de extensión pueden desestabilizar la aplicación host y provocar un comportamiento extraño. En concreto, Finder y la sección Hoydel Centro de notificaciones pueden quedar "atascados" y dejar de responder. Esto también se ha experimentado en los proyectos de extensión de Xcode y actualmente no parece estar relacionado con Xamarin.Mac. A menudo esto se puede ver en el registro del sistema (a través de la consola de, vea Sugerencias para obtener más información) al imprimir mensajes de error repetidos. El reinicio de macOS parece corregirlo.

Sugerencias

Las siguientes sugerencias pueden ser útiles al trabajar con extensiones en Xamarin.Mac:

  • Como Xamarin.Mac actualmente no admite extensiones de depuración, la experiencia de depuración dependerá principalmente de la ejecución y las printf instrucciones like. Sin embargo, las extensiones se ejecutan en un proceso de espacio aislado, por lo que no actuarán como Console.WriteLine en otras aplicaciones de Xamarin.Mac. La invocación directa dará como resultado mensajes de depuración al registro del sistema.

  • Cualquier excepción no detectada bloqueará el proceso de extensión, proporcionando solo una pequeña cantidad de información útil en el registro del sistema. El encapsulado de código problemático en un bloque (excepción) que es antes de volver a try/catchNSLog iniciarse puede ser útil.

  • Se puede acceder al registro del sistema desde la aplicación de consola en Utilidades deaplicaciones:

    Registro del sistema

  • Como se indicó anteriormente, la ejecución de la aplicación host de extensión la registrará en el sistema. Eliminar la agrupación de aplicaciones con anular el registro.

  • Si se registran versiones "perdidas" de las extensiones de una aplicación, use el siguiente comando para buscarlas (para que se puedan eliminar): plugin kit -mv

Tutorial y aplicación de ejemplo

Puesto que el desarrollador creará y trabajará con extensiones de Xamarin.Mac de la misma manera que las extensiones de Xamarin.iOS, consulte nuestra documentación introducción a las extensiones para obtener más detalles.

Puede encontrar un proyecto de Xamarin.Mac de ejemplo que contiene ejemplos pequeños y prácticos de cada tipo de extensión aquí.

Resumen

En este artículo se ha dado un vistazo rápido al trabajo con extensiones en una aplicación xamarin.mac versión 2.10 (y superior).