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 daherConsole.WriteLine
nicht wie in anderen Xamarin.Mac-Anwendungen. Wenn SieNSLog
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,NSLog
kann nützlich sein.Auf das Systemprotokoll kann über die Konsolen-App unterAnwendungshilfsprogramme> zugegriffen werden:
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.