Condividi tramite


Distribuire un'app iOS usando il riavvio rapido

In genere, quando si compila un'app, il codice viene compilato e combinato con altre risorse di progetto per compilare un bundle di app distribuito nel simulatore o nel dispositivo. Con questo modello, quando si apporta una modifica all'app, è necessario creare e distribuire un nuovo bundle di app. Anche se le compilazioni incrementali possono contribuire a ridurre il tempo di compilazione, le distribuzioni richiedono in genere la stessa quantità di tempo indipendentemente dalle dimensioni della modifica.

Il riavvio rapido dell'interfaccia utente app multipiattaforma .NET (.NET MAUI) consente di distribuire rapidamente un'app MAUI .NET in un dispositivo iOS locale a 64 bit, da Visual Studio 2022, senza richiedere un host di compilazione Mac. Rimuove la necessità di una ricompilazione completa del bundle dell'app eseguendo il push delle modifiche al bundle di app esistente già presente nel dispositivo iOS connesso in locale. Supporta le modifiche apportate ai file di codice, alle risorse e ai riferimenti ai progetti, consentendo di testare rapidamente le modifiche apportate all'app durante lo sviluppo.

Importante

Il riavvio rapido non è una sostituzione per l'esperienza di compilazione completa fornita da un host di compilazione Mac. Ad esempio, può distribuire solo app che usano la configurazione di compilazione di debug e non supporta librerie statiche e framework, XCFrameworks o pacchetti di risorse di associazione. Per altre informazioni, vedere: Limitazioni.

È necessario soddisfare diversi requisiti per l'uso del riavvio a caldo per distribuire un'app MAUI .NET in un dispositivo iOS connesso in locale:

  • È necessario usare Visual Studio 2022 versione 17.3 o successiva.
  • È necessario che nel computer di sviluppo sia installato iTunes (Microsoft Store o versione a 64 bit).
  • È necessario disporre di un account Apple Developer e di una registrazione apple Developer Program a pagamento.

Attrezzaggio

Per configurare il riavvio a caldo, seguire questa procedura:

  1. Nella barra degli strumenti di Visual Studio usare l'elenco a discesa Destinazione di debug per selezionare Dispositivi locali iOS e quindi la voce Dispositivo locale:

    Screenshot della scelta della destinazione di debug iniziale per il riavvio a caldo.

  2. Nella barra degli strumenti di Visual Studio selezionare Dispositivo locale:

    Screenshot della destinazione di debug iniziale scelta per il riavvio a caldo.

    Verrà visualizzata l'Installazione guidata del riavvio rapido, che consente di configurare un dispositivo iOS locale per la distribuzione con riavvio rapido.

  3. Nell'Installazione guidata Riavvio rapido selezionare Avanti:

    Screenshot del primo passaggio della procedura guidata per il riavvio rapido dell'installazione.

  4. Se iTunes non è installato, l'installazione guidata richiederà di installarlo. Nella configurazione guidata del riavvio rapido selezionare Scarica iTunes:

    Screenshot del secondo passaggio della procedura guidata di riavvio rapido dell'installazione.

    Nota

    iTunes può essere installato da Microsoft Store o scaricandolo da Apple.

    Attendere il download di iTunes e quindi installarlo. Se lo installi da Microsoft Store, una volta completata l'installazione, aprilo, segui le istruzioni aggiuntive per abilitarlo per individuare i dispositivi connessi in locale.

  5. Nella configurazione guidata del riavvio rapido selezionare Avanti per passare al passaggio successivo della procedura guidata che richiederà di connettere un dispositivo iOS locale:

    Screenshot del terzo passaggio iniziale della procedura guidata di riavvio rapido dell'installazione.

  6. Connettere il dispositivo iOS al computer di sviluppo tramite un cavo USB. Nel dispositivo potrebbe essere visualizzata una richiesta che richiede di considerare attendibile il computer di sviluppo. Nel dispositivo fare clic su Considera attendibile e seguire eventuali richieste aggiuntive del dispositivo.

  7. Nella configurazione guidata del riavvio rapido selezionare Avanti dopo aver rilevato il dispositivo iOS locale:

    Screenshot del terzo passaggio completato nella procedura guidata di riavvio rapido dell'installazione.

    Nota

    Se l'installazione guidata non riesce a rilevare il dispositivo iOS locale, disconnettere quindi riconnettere il dispositivo iOS locale dal computer di sviluppo. Assicurarsi inoltre che iTunes riconosca il dispositivo iOS locale.

  8. Nella configurazione guidata del riavvio rapido fare clic sul collegamento ipertestuale Accedi con un singolo account per configurare il riavvio rapido per l'uso del singolo account Apple Developer Program:

    Screenshot del quarto passaggio iniziale della procedura guidata di riavvio rapido dell'installazione.

    Verrà visualizzata la finestra di dialogo Account singolo .

    Nota

    In alternativa, per configurare il riavvio rapido per l'uso di un account Apple Developer aziendale, fare clic sul collegamento ipertestuale Accedi con un account aziendale e immettere le credenziali nella finestra di dialogo visualizzata. Procedere quindi con il passaggio 12.

  9. Creare una chiave API Connect di App Store. Sarà necessario disporre di un account Apple Developer e di una registrazione apple Developer Program a pagamento. Per informazioni sulla creazione di una chiave API Connect di App Store, vedere Creazione di chiavi API per l'API Connect di App Store in developer.apple.com.

  10. Nella finestra di dialogo Account singolo immettere i dati della chiave API connect di App Store:

    Screenshot della finestra di dialogo completata per l'aggiunta di un account Apple Individual.

    I dati nome, ID autorità di certificazione e ID chiave sono disponibili in App Store Connect selezionando Utenti e accesso e quindi la scheda Chiavi . La chiave privata può essere scaricata anche da questo percorso:

    Screenshot dei dettagli dell'API Connect di Apple App Store.

  11. Nella finestra di dialogo Account singolo fare clic sul pulsante Aggiungi. Verrà chiusa la finestra di dialogo Account singolo .

  12. Nella configurazione guidata del riavvio rapido fare clic sul pulsante Fine:

    Screenshot del quarto passaggio completato nella procedura guidata di riavvio rapido dell'installazione.

    L'account apple Developer Program verrà aggiunto a Visual Studio e l'installazione guidata del riavvio rapido verrà chiusa.

  13. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Proprietà.

  14. Nelle proprietà del progetto espandere iOS e selezionare Firma bundle. Usare l'elenco a discesa Schema per selezionare Provisioning automatico e quindi fare clic sul collegamento ipertestuale Configura provisioning automatico:

    Screenshot del provisioning automatico abilitato nella pagina delle proprietà iOS in Visual Studio.

    Verrà visualizzata la finestra di dialogo Configura provisioning automatico.

  15. Nella finestra di dialogo Configura provisioning automatico selezionare il team per la chiave API Connect:

    Screenshot della finestra di dialogo di provisioning automatico quando è configurata correttamente.

    Visual Studio completerà il processo di provisioning automatico. Fare quindi clic sul pulsante OK per chiudere la finestra di dialogo Configura provisioning automatico.

    Nota

    È consigliabile usare il provisioning automatico in modo che sia possibile configurare facilmente dispositivi iOS aggiuntivi per la distribuzione. Tuttavia, è possibile usare il provisioning manuale se nel computer sono presenti i profili di provisioning corretti.

Distribuire ed eseguire il debug usando il riavvio rapido

Dopo aver eseguito la configurazione iniziale, il dispositivo iOS connesso locale verrà visualizzato nel menu a discesa destinazione di debug. Per distribuire ed eseguire il debug dell'app:

  1. Assicurarsi che il dispositivo iOS connesso locale sia sbloccato.

  2. Nella barra degli strumenti di Visual Studio selezionare il dispositivo iOS connesso locale nell'elenco a discesa destinazione di debug e fare clic sul pulsante Esegui per compilare l'app e distribuirla nel dispositivo iOS locale:

    Screenshot della destinazione di debug scelta per il riavvio a caldo.

  3. Dopo aver distribuito l'app, Visual Studio visualizzerà la finestra di dialogo Connessione debugger :

    Screenshot della finestra di dialogo che chiede di avviare l'app nel dispositivo.

    Avviare l'app nel dispositivo e Visual Studio connetterà il debugger all'app in esecuzione e la finestra di dialogo Connessione debugger verrà chiusa.

Durante il debug dell'app, è possibile modificare il codice C# e premere il pulsante di riavvio nella barra degli strumenti di Visual Studio per riavviare la sessione di debug con le nuove modifiche applicate:

Screenshot del pulsante di riavvio sulla barra degli strumenti di Visual Studio.

Impedire l'esecuzione del codice

Il HOTRESTART simbolo del preprocessore può essere usato per impedire l'esecuzione del codice durante il debug con il riavvio a caldo:

#if !HOTRESTART
  // Code here won't be executed when debugging with hot restart
#endif

Abilitare il riavvio a caldo

Il riavvio rapido è abilitato per impostazione predefinita in Visual Studio 2022. Se è stata disabilitata in precedenza, può essere abilitata selezionando Strumenti > Opzioni dalla barra dei menu di Visual Studio. Successivamente, nella finestra di dialogo Opzioni espandere Xamarin e selezionare Impostazioni iOS. Assicurarsi quindi che l'opzione Abilita riavvio frequente sia selezionata:

Screenshot di come abilitare il riavvio a caldo in Visual Studio.

Limiti

Esistono limitazioni quando si usa il riavvio a caldo:

  • Può essere usato solo per distribuire app che usano la configurazione di compilazione di debug. È comunque necessario un host di compilazione Mac per compilare, firmare e distribuire l'app a scopo di produzione.
  • I file Storyboard e XIB non sono supportati e l'app potrebbe arrestarsi in modo anomalo se tenta di caricarli in fase di esecuzione.
  • Le librerie iOS statiche e i framework contenenti librerie statiche non sono supportati e potrebbero verificarsi errori di runtime o arresti anomali se l'app tenta di caricarli.
  • Sono supportati pacchetti di risorse XCFrameworks e binding, purché non contengano librerie iOS statiche o framework con librerie statiche.
  • I cataloghi di asset non sono supportati. Quando si usa il riavvio rapido, l'app visualizzerà un'icona .NET e una schermata di avvio.

Risoluzione dei problemi

iOS usa un watchdog che monitora i tempi di avvio e la velocità di risposta delle app e termina le app che non rispondono. Ad esempio, watchdog termina le app che bloccano il thread principale per un periodo di tempo significativo. Nei dispositivi iOS precedenti, il watchdog può terminare un'app distribuita usando il riavvio rapido prima che il debugger sia connesso. La soluzione alternativa consiste nel ridurre la quantità di elaborazione eseguita nel percorso di avvio dell'app e usare un dispositivo iOS più recente.

Per segnalare altri problemi, usare lo strumento di feedback all'indirizzo Help > Send Feedback > Segnala un problema.