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 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 unten.
  • Erweiterungen müssen in einer Hostanwendung enthalten sein, die bei einmaliger Ausführung mit 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 seltsames Verhalten verursachen. Insbesondere können finder und der Abschnitt Heute des Notification Center "blockiert" werden und nicht mehr reagieren. Dies wurde auch in Erweiterungsprojekten in Xcode erlebt und scheint derzeit nicht mit Xamarin.Mac zusammenzuhängen. Dies kann häufig im Systemprotokoll (über die Konsole, siehe Tipps für Details) beim Drucken wiederholter Fehlermeldungen angezeigt werden. Der Neustart von macOS scheint dies zu beheben.

Tipps

Die folgenden Tipps können hilfreich sein, wenn Sie mit Erweiterungen in Xamarin.Mac arbeiten:

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

  • Alle nicht ausgeführten Ausnahmen führen zum Absturz des Erweiterungsprozesses und stellen nur eine kleine Menge nützlicher Informationen im Systemprotokoll bereit. Das Umschließen von problematischem Code in einen try/catch (Ausnahme)-Block, der vor dem erneuten Auslösen liegt, NSLogkann nützlich sein.

  • Auf das Systemprotokoll kann über die Konsolen-App unterAnwendungshilfsprogramme> zugegriffen werden:

    Das Systemprotokoll

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

  • Wenn "streunende" 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 erstellt und damit arbeitet, finden Sie weitere Informationen in der Dokumentation Einführung in Erweiterungen .

Ein Xamarin.Mac-Beispielprojekt mit kleinen, funktionierenden Beispielen jedes Erweiterungstyps finden Sie hier.

Zusammenfassung

In diesem Artikel wird die Arbeit mit Erweiterungen in einer Xamarin.Mac-App, Version 2.10 (und höher) erläutert.