Compartir a través de


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:

  • Finder
  • 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, se registra 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 "atascarse" y dejar de responder. Esto también se ha experimentado en proyectos de extensión en 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, consulte Sugerencias para obtener detalles) imprimiendo mensajes de error repetidos. Reiniciar macOS parece corregirlo.

Sugerencias

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

  • Como, en este momento, Xamarin.Mac no admite extensiones de depuración, la experiencia de depuración dependerá principalmente de la ejecución y de instrucciones similares a printf. Sin embargo, las extensiones se ejecutan en un proceso de espacio aislado, por lo tanto Console.WriteLine no actuará como en otras aplicaciones de Xamarin.Mac. Invocar NSLog directamente 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. Puede resultar útil encapsular código problemático en un bloque try/catch (excepción) que se registre mediante NSLog antes de volver a generarse.

  • Se puede acceder al Registro del sistema desde la aplicación Consola en Aplicaciones>Utilidades:

    Registro del sistema

  • Como se indicó anteriormente, la ejecución de la aplicación host de extensiones hará que se registre en el sistema. Eliminar la agrupación de aplicaciones con la opción de anular el registro.

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

Tutorial

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.

Resumen

En este artículo, se ha dado un vistazo rápido a cómo trabajar extensiones en una aplicación de Xamarin.Mac versión 2.10 (y posterior).