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 daherConsole.WriteLine
nicht wie in anderen Xamarin.Mac-Anwendungen. Durch das direkte AufrufenNSLog
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,NSLog
kann nützlich sein.Auf das Systemprotokoll kann über die Konsolen-App unter "Dienstprogramme für Anwendungen>" zugegriffen werden:
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.