Unterstützung für Xamarin.Mac-Erweiterungen

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

  • Finder
  • Teilen
  • Heute

Einschränkungen und bekannte Probleme

Im Folgenden finden Sie die Einschränkungen und kennen Probleme, die beim Entwickeln von Erweiterungen in Xamarin.Mac auftreten können:

  • Derzeit gibt es keine Debugunterstützung in Visual Studio für Mac. Das 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 einmal mit der Registrierung beim System ausgeführt wird. Sie müssen dann im Abschnitt Erweiterung der Systemeinstellungen aktiviert werden.
  • Einige Erweiterungsabstürze können die Hostanwendung destabilisieren und ungewöhnliches Verhalten verursachen. Insbesondere der Finder- und der Today-Abschnitt der Mitteilungszentrale werden möglicherweise "verkleinert" und reagieren nicht mehr. Dies ist auch bei Erweiterungsprojekten in Xcode der Fall und steht derzeit in keinem Zusammenhang mit Xamarin.Mac. Dies ist häufig im Systemprotokoll zu sehen (über die Konsole ,siehe Tipps weitere Informationen), in dem wiederholte Fehlermeldungen ausgegeben werden. Ein Neustart von macOS wird angezeigt, um dies zu beheben.

Tipps

Die folgenden Tipps können bei der Arbeit mit Erweiterungen in Xamarin.Mac hilfreich sein:

  • Da Xamarin.Mac derzeit keine Debugerweiterungen unterstützt, hängt die Debugerfahrung in erster Linie von der Ausführung und printf like-Anweisungen ab. Erweiterungen werden jedoch in einem Sandboxprozess ausgeführt und werden daher nicht wie Console.WriteLine in anderen Xamarin.Mac-Anwendungen ausgeführt. Wenn Sie direkt aufrufen, werden Debugmeldungen an das Systemprotokoll ausgegeben.

  • Nicht abgesunkene Ausnahmen stürzt den Erweiterungsprozess ab, was nur eine kleine Menge nützlicher Informationen im Systemprotokoll enthält. Das Umschließen von problematischen Code in einem (Ausnahme)-Block, der vor dem erneuten Auslösen von try/catchNSLog ist, kann nützlich sein.

  • Auf das Systemprotokoll kann über die Konsolen-App unter Anwendungsprogramme zugegriffenwerden:

    Das Systemprotokoll

  • Wie bereits erwähnt, wird sie beim Ausführen der Erweiterungshostanwendung beim System registriert. Löschen des Anwendungspakets mit Aufheben der Registrierung

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

Exemplarische Vorgehensweise und Beispiel-App

Da der Entwickler Xamarin.Mac-Erweiterungen auf die gleiche Weise wie Xamarin.iOS-Erweiterungen erstellen und mit ihnen arbeiten wird, finden Sie weitere Informationen in unserer Dokumentation Einführung in Erweiterungen.

Ein Xamarin.Mac-Beispielprojekt mit kleinen, funktionierenden Beispielen für jeden Erweiterungstyp finden Sie hier.

Zusammenfassung

In diesem Artikel wurde die Arbeit mit Erweiterungen in einer Xamarin.Mac-App ab Version 2.10 beschrieben.