Поддержка расширения Xamarin.Mac

В Xamarin.Mac 2.10 добавлена поддержка нескольких точек расширения macOS:

  • Finder
  • Общий доступ
  • Today

Ограничения и известные проблемы

Ниже приведены ограничения и известны проблемы, которые могут возникнуть при разработке расширений в Xamarin.Mac:

  • В настоящее время в Visual Studio для Mac поддержка отладки отсутствует. Все отладки необходимо выполнить с помощью NSLog и консоли. Дополнительные сведения см. в разделе советов ниже.
  • Расширения должны содержаться в хост-приложении, которое при однократном выполнении с регистрацией в системе. Затем они должны быть включены в разделе расширения системных параметров.
  • Некоторые сбои расширения могут дестабилизировать хост-приложение и вызвать странное поведение. В частности, Finder и раздел "Сегодня" центра уведомлений может стать "зажатым" и не отвечать. Это было связано с проектами расширений в Xcode, и в настоящее время не связано с Xamarin.Mac. Часто это можно увидеть в системном журнале (с помощью консоли см. Советы подробных сведений) для печати повторяющихся сообщений об ошибках. При перезапуске macOS появляется исправление этого.

Советы

Следующие советы могут быть полезны при работе с расширениями в Xamarin.Mac:

  • Так как в настоящее время Xamarin.Mac не поддерживает расширения отладки, процесс отладки в основном зависит от выполнения и printf подобных инструкций. Однако расширения выполняются в изолированном процессе, поэтому Console.WriteLine не будут действовать так, как это делается в других приложениях Xamarin.Mac. NSLog Вызов непосредственно выводит сообщения отладки в системный журнал.

  • Все необработанные исключения завершатся сбоем процесса расширения, предоставляя только небольшое количество полезных сведений в системном журнале. Упаковка проблемного кода в try/catch блок (исключение), который NSLogдо повторного выполнения может оказаться полезным.

  • Системный журнал можно получить из консольногоприложения в разделе "Служебные программы приложений>":

    Системный журнал

  • Как отмечалось выше, запуск ведущего приложения расширения будет регистрировать его в системе. Удаление пакета приложения с отменой регистрации.

  • Если зарегистрированы версии расширений приложения ,используйте следующую команду, чтобы найти их (чтобы их можно было удалить): plugin kit -mv

Пошаговое руководство

Так как разработчик создаст и будет работать с расширениями Xamarin.Mac таким же образом, как и расширения Xamarin.iOS, см. в нашей документации по расширениям "Введение в расширения".

Итоги

В этой статье описано, как работать с расширениями в приложении Xamarin.Mac версии 2.10 (и выше).