Compatibilidad con las extensiones de Xamarin.Mac

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

  • Buscador
  • Compartir
  • Hoy

Limitaciones y problemas conocidos

A continuación se muestran 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 deberá realizarse a través de NSLog y la consola. Consulte la sección de sugerencias a continuación para obtener más información.
  • Las extensiones deben estar contenidas en una aplicación host, que cuando se ejecuta una vez con el 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 Hoy del Centro de notificaciones pueden quedar "atascos" y dejar de responder. Esto también se ha experimentado en proyectos de extensión en Xcode y actualmente no aparece relacionado con Xamarin.Mac. A menudo, esto se puede ver en el registro del sistema (a través de la consola, consulte Sugerencias para obtener detalles) 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 printf de las instrucciones like. Sin embargo, las extensiones se ejecutan en un proceso de espacio aislado, por lo que Console.WriteLine no actuarán como en otras aplicaciones de Xamarin.Mac. La invocación NSLog directa generará mensajes de depuración en el registro del sistema.

  • Las excepciones no detectadas bloquearán el proceso de extensión, proporcionando solo una pequeña cantidad de información útil en el registro del sistema. Ajustar código problemático en un try/catch bloque (Excepción) que NSLoges antes de volver a iniciarse puede ser útil.

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

    Registro del sistema

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

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

Tutorial y aplicación de ejemplo

Dado 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 extensiones para obtener más detalles.

Aquí puede encontrar un proyecto de Xamarin.Mac de ejemplo que contenga ejemplos pequeños y prácticos de cada tipo de extensión.

Resumen

En este artículo se ha echado un vistazo rápido al trabajo con extensiones en una aplicación de Xamarin.Mac versión 2.10 (y posterior).