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

  • Visual Studio for Mac目前没有调试支持。 所有调试都需要通过 NSLog 控制台 完成。 有关详细信息,请参阅下面的提示部分。
  • 扩展必须包含在主机应用程序中,在系统注册一次时运行扩展。 然后,必须在 系统首选项 “扩展 ”部分中启用它们。
  • 某些扩展崩溃可能会破坏主机应用程序的稳定,并导致奇怪的行为。 特别是,通知 中心的 Finder Today 部分可能会变得“堵塞”,并且变得无响应。 Xcode 中的扩展项目也经历了这种情况,目前似乎与 Xamarin.Mac 无关。 通常可以通过 控制台 在系统日志 (中看到此情况,请参阅使用技巧,详细了解) 打印重复的错误消息。 重启 macOS 似乎修复了此问题。
  • 在 Xamarin.Mac 中使用扩展时,以下提示非常有用:

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

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

  • 可以从 ApplicationsUtilities > 下的 控制台 应用访问 系统日志

  • 如上所述,运行扩展主机应用程序会将它注册到系统。 删除应用程序捆绑包并取消注册它。

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

    演练和示例应用

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

    在此处 找到包含每个扩展类型的小型工作示例的示例 Xamarin.Mac 项目。

    本文已快速了解如何在 Xamarin.Mac 版本 2.10 (及更高版本的) 应用中使用扩展。

  • 了解 Mac
  • ExtensionSamples
  • macOS 人机界面指南
  •