Supporto delle estensioni Xamarin.Mac
In Xamarin.Mac 2.10 è stato aggiunto il supporto per più punti di estensione macOS:
- Finder
- Condividi
- Oggi
Limitazioni e problemi noti
Di seguito sono riportate le limitazioni e i problemi noti che possono verificarsi durante lo sviluppo di estensioni in Xamarin.Mac:
- Attualmente non è disponibile alcun supporto per il debug in Visual Studio per Mac. Tutto il debug dovrà essere eseguito tramite NSLog e la console. Per informazioni dettagliate, vedere la sezione dei suggerimenti di seguito.
- Le estensioni devono essere contenute in un'applicazione host, che quando viene eseguita una sola volta con registrazione nel sistema. Devono quindi essere abilitati nella sezione Estensione di Preferenze di sistema.
- Alcuni arresti anomali dell'estensione possono destabilizzare l'applicazione host e causare comportamenti anomali. In particolare, Finder e la sezione Oggi del Centro notifiche possono diventare "inceppati" e diventare non rispondenti. Questo problema è stato riscontrato anche nei progetti di estensione in Xcode e attualmente non è correlato a Xamarin.Mac. Spesso questo può essere visualizzato nel log di sistema (tramite console, vedere Suggerimenti per informazioni dettagliate) stampare messaggi di errore ripetuti. Il riavvio di macOS sembra risolvere questo problema.
Suggerimenti
I suggerimenti seguenti possono essere utili quando si lavora con le estensioni in Xamarin.Mac:
Poiché Xamarin.Mac attualmente non supporta le estensioni di debug, l'esperienza di debug dipende principalmente dall'esecuzione e
printf
dalle istruzioni like. Tuttavia, le estensioni vengono eseguite in un processo sandbox, quindiConsole.WriteLine
non funzioneranno come in altre applicazioni Xamarin.Mac. La chiamataNSLog
diretta restituirà i messaggi di debug nel log di sistema.Eventuali eccezioni non rilevate arresteranno il processo di estensione, fornendo solo una piccola quantità di informazioni utili nel log di sistema. Il wrapping di codice problematico in un
try/catch
blocco (eccezione) primaNSLog
della generazione di nuovo può essere utile.È possibile accedere al log di sistema dall'app Console in Utilità applicazioni>:
Come indicato in precedenza, l'esecuzione dell'applicazione host dell'estensione lo registrerà nel sistema. Eliminazione del bundle dell'applicazione con la annullamento della registrazione.
Se vengono registrate versioni "strade" delle estensioni di un'app, usare il comando seguente per individuarle (in modo che possano essere eliminate):
plugin kit -mv
scenario
Poiché lo sviluppatore creerà e lavorerà con le estensioni Xamarin.Mac nello stesso modo delle estensioni Xamarin.iOS, vedere la documentazione introduzione alle estensioni per altri dettagli.
Riepilogo
Questo articolo ha esaminato rapidamente l'uso delle estensioni in un'app Xamarin.Mac versione 2.10 (e successive).