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:
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:
Nella barra degli strumenti di Visual Studio selezionare Dispositivo locale:
Verrà visualizzata l'Installazione guidata del riavvio rapido, che consente di configurare un dispositivo iOS locale per la distribuzione con riavvio rapido.
Nell'Installazione guidata Riavvio rapido selezionare Avanti:
Se iTunes non è installato, l'installazione guidata richiederà di installarlo. Nella configurazione guidata del riavvio rapido selezionare Scarica iTunes:
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.
Nella configurazione guidata del riavvio rapido selezionare Avanti per passare al passaggio successivo della procedura guidata che richiederà di connettere un dispositivo iOS locale:
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.
Nella configurazione guidata del riavvio rapido selezionare Avanti dopo aver rilevato il dispositivo iOS locale:
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.
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:
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.
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.
Nella finestra di dialogo Account singolo immettere i dati della chiave API connect di App Store:
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:
Nella finestra di dialogo Account singolo fare clic sul pulsante Aggiungi. Verrà chiusa la finestra di dialogo Account singolo .
Nella configurazione guidata del riavvio rapido fare clic sul pulsante Fine:
L'account apple Developer Program verrà aggiunto a Visual Studio e l'installazione guidata del riavvio rapido verrà chiusa.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Proprietà.
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:
Verrà visualizzata la finestra di dialogo Configura provisioning automatico.
Nella finestra di dialogo Configura provisioning automatico selezionare il team per la chiave API Connect:
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:
Assicurarsi che il dispositivo iOS connesso locale sia sbloccato.
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:
Dopo aver distribuito l'app, Visual Studio visualizzerà la finestra di dialogo Connessione debugger :
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:
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:
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.