Unterstützung für Xamarin.Mac-Erweiterungen

In Xamarin.Mac 2.10 wurde Unterstützung für mehrere macOS-Erweiterungspunkte hinzugefügt:

  • Finder
  • Teilen
  • Today

Einschränkungen und bekannte Probleme

Im Folgenden sind die Einschränkungen und bekannten Probleme aufgeführt, die beim Entwickeln von Erweiterungen in Xamarin.Mac auftreten können:

  • Derzeit gibt es keine Debugunterstützung in Visual Studio für Mac. Das gesamte Debuggen muss über NSLog und die Konsole erfolgen. Weitere Informationen finden Sie im Abschnitt "Tipps" weiter unten.
  • Erweiterungen müssen in einer Hostanwendung enthalten sein, die bei der einmaligen Ausführung mit der Registrierung beim System ausgeführt wird. Sie müssen dann im Abschnitt "Erweiterung " der Systemeinstellungen aktiviert sein.
  • Einige Erweiterungsabstürzen können die Hostanwendung destabilisieren und seltsames Verhalten verursachen. Insbesondere kann finder und der Abschnitt "Heute" des Benachrichtigungscenters "jammed" werden und nicht mehr reagieren. Dies ist auch in Erweiterungsprojekten in Xcode aufgetreten und scheint derzeit nicht mit Xamarin.Mac zu tun. Dies kann häufig im Systemprotokoll (über konsoleninterne Informationen finden Sie unter Tipps) beim Drucken wiederholter Fehlermeldungen angezeigt werden. Der Neustart von macOS scheint dies zu beheben.

Tipps

Die folgenden Tipps können beim Arbeiten mit Erweiterungen in Xamarin.Mac hilfreich sein:

  • Da Xamarin.Mac derzeit keine Debuggingerweiterungen unterstützt, hängt die Debugerfahrung in erster Linie von der Ausführung und printf ähnlichen Anweisungen ab. Erweiterungen werden jedoch in einem Sandkastenprozess ausgeführt und funktionieren daher Console.WriteLine nicht wie in anderen Xamarin.Mac-Anwendungen. Durch das direkte Aufrufen NSLog werden Debuggingmeldungen in das Systemprotokoll ausgegeben.

  • Uncaught exceptions will crash the extension process, providing only a small amount of useful information in the System Log. Das Umschließen von problematischem Code in einen try/catch (Ausnahme)-Block, der sich vor dem erneuten Auslösen befindet, NSLogkann nützlich sein.

  • Auf das Systemprotokoll kann über die Konsolen-App unter "Dienstprogramme für Anwendungen>" zugegriffen werden:

    Das Systemprotokoll

  • Wie bereits erwähnt, registriert die Ausführung der Erweiterungshostanwendung sie beim System. Löschen des Anwendungsbundles mit aufheben der Registrierung.

  • Wenn "streunende" Versionen der Erweiterungen einer App registriert sind, verwenden Sie den folgenden Befehl, um sie zu finden (sodass sie gelöscht werden können): plugin kit -mv

Exemplarische Vorgehensweise

Da der Entwickler Xamarin.Mac-Erweiterungen auf die gleiche Weise wie Xamarin.iOS-Erweiterungen erstellt und verwendet, finden Sie in unserer Dokumentation zur Einführung in Erweiterungen weitere Details.

Zusammenfassung

In diesem Artikel wird die Arbeit mit Erweiterungen in einer Xamarin.Mac Version 2.10 (und höher) beschrieben.