Xamarin.Mac 扩展支持

在 Xamarin.Mac 2.10 中,增加了对多个 macOS 扩展点的支持:

  • Finder
  • 共享
  • Today

限制和已知问题

以下是在 Xamarin.Mac 中开发扩展时可能发生的限制和已知问题:

  • Visual Studio for Mac 目前不提供调试支持。 所有调试都需要通过 NSLog 和“控制台”完成。 有关详细信息,请参阅以下提示部分。
  • 扩展必须包含在主机应用程序中,该应用程序在运行一次时会向系统注册。 然后,必须在“系统首选项”的“扩展”部分中启用它们
  • 某些扩展崩溃可能会破坏主机应用程序的稳定,并导致异常的行为。 特别是,通知中心的“访达”和“今天”部分可能会“拥堵”并变得无响应。 Xcode 中的扩展项目也经历过这种情况,目前与 Xamarin.Mac 无关。 通常可以在系统日志(通过“控制台”查看提示了解详细信息)中显示重复的错误消息。 重启 macOS 可以解决此问题。

提示

在 Xamarin.Mac 中使用扩展时,以下提示非常有用:

  • 由于 Xamarin.Mac 目前不支持调试扩展,因此调试体验将主要取决于执行和类似 printf 的语句。 但是,扩展在沙盒进程中运行,因此 Console.WriteLine 不会像在其他 Xamarin.Mac 应用程序中那样运行。 直接调用 NSLog 会将调试消息输出到系统日志。

  • 任何未捕获的异常都会使扩展进程崩溃,在系统日志中仅提供少量有用的信息。 将麻烦的代码包装在 NSLog 重新引发之前的 try/catch(异常)块中可能会很有用。

  • 可以从“应用程序”>“实用工具”下的“控制台”应用访问“系统日志”

    系统日志

  • 如上所述,运行扩展主机应用程序会将其注册到系统。 通过注销来删除应用程序捆绑包。

  • 如果注册了应用程序扩展的“杂乱”版本,请使用以下命令找到它们(以便将其删除):plugin kit -mv

演练

由于开发人员将以与 Xamarin.iOS 扩展相同的方式创建和使用 Xamarin.Mac 扩展,因此请参阅扩展简介文档以了解更多详细信息。

总结

本文简要介绍了 Xamarin.Mac 版本 2.10(及更高版本)应用中的扩展的使用情况。