Opzioni del linker Xamarin.Mac

Il collegamento è un potente strumento di ottimizzazione che riduce le dimensioni dell'applicazione rimuovendo il codice inutilizzato.

Panoramica

A seconda del framework di destinazione usato dal progetto, le opzioni del linker disponibili possono essere limitate. Questo è dovuto al fatto che il collegamento richiede la creazione di un oggetto grafico di ogni tipo usato dall'applicazione e questo non è possibile nel framework completo (o non supportato) a causa di System.Configuration.

Le opzioni disponibili sono quattro:

  • Nessuno: disabilita del tutto il collegamento. Opzione predefinita nella configurazione di debug nel framework moderno e in tutte le configurazioni nel framework completo.
  • SDK: collega tutti gli assembly SDK, esclusi gli assembly utente. Opzione predefinita nella configurazione di rilascio nel framework moderno. Non è disponibile nel framework completo.
  • Completo: collega tutti gli assembly. Questa opzione richiede che il codice utente sia indipendente dal linker. Per altre informazioni, vedere le note. Non è disponibile nel framework completo.
  • Piattaforma: collega solo Xamarin.Mac.dll. Per informazioni dettagliate, vedi di seguito.

Collegamento della piattaforma

Il collegamento di applicazioni tramite il framework di destinazione completo è in genere poco sicuro, ma esiste un certo numero di scenari in cui è necessaria una forma molto limitata di collegamento.

Ad esempio, le applicazioni inviate a macOS App Store non devono fare riferimento a determinate API deprecate, come QTKit, di alcune delle quali Xamarin.Mac contiene binding. Anche se un'applicazione non chiama questi binding, la chiamata sarà presente nell'SDK e verrà rifiutata.

Il collegamento della piattaforma presuppone che l'applicazione e la libreria di classi di base non siano indipendenti dal linker e rimuove solo il codice inutilizzato da Xamarin.Mac.dll.

Qualsiasi applicazione che non esegue la reflection sui tipi Xamarin.Mac.dll registrerà un miglioramento minimo all'avvio grazie alla rimozione dei tipi non necessari.

Il collegamento della piattaforma è in genere utile solo per le applicazioni che usano il framework di destinazione completo, perché le applicazioni moderne possono usare l'opzione SDK, che è più potente.

Impostazione della configurazione del linker

Per passare alla configurazione del linker per un progetto Xamarin.Mac, eseguire le operazioni seguenti:

  1. Aprire il progetto Xamarin.Mac in Visual Studio per Mac.

  2. In Esplora soluzioni fare doppio clic sul file di progetto per aprire la finestra di dialogo Opzioni progetto.

  3. Nella scheda Compilazione Mac selezionare il tipo di comportamento più adatto per le esigenze dell'applicazione in Comportamento del linker:

    Choose which linker behavior to use

  4. Il collegamento della piattaforma per framework di destinazione completi non viene visualizzato nell'IDE fino a un aggiornamento successivo. Fino ad allora, aggiungere --linkplatform invece agli argomenti mmp aggiuntivi .

  5. Fare clic sul pulsante OK per salvare le modifiche.