Provisioning automatico per le app iOS

Il provisioning automatico è l'approccio consigliato per la distribuzione di un'app iOS .NET Multipiattaforma (.NET MAUI) in un dispositivo. Con questo approccio, Visual Studio crea e gestisce automaticamente le identità di firma, gli ID app e i profili di provisioning. Prima di avviare il processo di provisioning automatico, è necessario assicurarsi di aver aggiunto l'account Apple Developer a Visual Studio. Per altre informazioni, vedere Gestione degli account Apple.

Dopo aver aggiunto l'account sviluppatore Apple a Visual Studio, è possibile usare qualsiasi team associato. I certificati, gli ID app e i profili possono quindi essere creati nel team. L'ID team viene usato anche per creare un prefisso per l'ID app che verrà incluso nel profilo di provisioning, che consente ad Apple di verificare che un'app possa essere distribuita in un dispositivo.

Importante

Prima di iniziare, assicurarsi di aver accettato tutti i contratti di licenza utente nell'account sviluppatore Apple e nell'App Store Connect.

Abilitare il provisioning automatico

Dopo aver aggiunto l'account sviluppatore Apple a Visual Studio, è necessario abilitare il provisioning automatico per il progetto di app MAUI .NET:

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto di app .NET MAUI e scegliere Proprietà. Passare quindi alla scheda Firma bundle iOS > e assicurarsi che il provisioning automatico sia selezionato nell'elenco a discesa Schema:

    Screenshot della scheda di firma del bundle per iOS in Visual Studio.

  2. Nelle impostazioni di firma bundle fare clic sul collegamento ipertestuale Configura provisioning automatico.

  3. Nella finestra di dialogo Configura provisioning automatico selezionare il team. Visual Studio tenterà di effettuare automaticamente il provisioning del progetto e indicherà se il processo è stato completato correttamente:

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

    Se il provisioning automatico non riesce, nella finestra di dialogo Configura provisioning automatico verrà visualizzato il motivo dell'errore.

  4. Nella finestra di dialogo Configura provisioning automatico fare clic sul pulsante OK per chiudere la finestra di dialogo.

Distribuzione nel dispositivo

Dopo aver configurato il provisioning nel progetto di app MAUI .NET, l'app può essere distribuita in un dispositivo con Visual Studio:

  1. In Visual Studio verificare che l'IDE sia associato a un host di compilazione Mac. Per altre informazioni, vedere Associare a Mac per lo sviluppo iOS.

  2. Assicurarsi che il dispositivo iOS sia connesso all'host di compilazione Mac tramite USB o Wi-Fi. Per altre informazioni sulla distribuzione wireless, vedere Distribuzione wireless per le app .NET MAUI iOS.

  3. Nella barra degli strumenti di Visual Studio usare l'elenco a discesa Destinazione di debug per selezionare Dispositivi remoti iOS e quindi il dispositivo connesso all'host di compilazione Mac:

    Selezionare il dispositivo remoto in Visual Studio.

  4. Nella barra degli strumenti di Visual Studio premere il pulsante Start verde per avviare l'app nel dispositivo remoto:

    Scelta della destinazione di debug del dispositivo iOS di Visual Studio.

Nota

Un approccio alternativo alla distribuzione di un'app iOS .NET MAUI in un dispositivo consiste nell'usare il riavvio a caldo. Il riavvio rapido consente di distribuire un'app MAUI .NET in un dispositivo iOS locale a 64 bit, da Visual Studio, senza richiedere un host di compilazione Mac. Per altre informazioni, vedere Distribuire un'app iOS usando il riavvio rapido.

Eseguire il provisioning automatico

Quando il provisioning automatico è abilitato, Visual Studio eseguirà nuovamente il processo di provisioning automatico, se necessario, quando si verifica una delle operazioni seguenti:

  • Un dispositivo iOS è collegato al Mac. In questo modo viene verificato automaticamente se il dispositivo è registrato nell'account Apple Developer. In caso contrario, lo aggiungerà e genererà un nuovo profilo di provisioning che lo contiene.
  • L'ID bundle dell'app viene modificato. In questo modo viene aggiornato l'ID app e viene creato un nuovo profilo di provisioning contenente questo ID app.
  • Nel file Entitlements.plist è abilitata una funzionalità supportata. Questa funzionalità verrà aggiunta all'ID app e viene generato un nuovo profilo di provisioning con l'ID app aggiornato. Attualmente non sono supportate tutte le funzionalità. Per altre informazioni sulle funzionalità, vedere Funzionalità.

ID app con caratteri jolly

Per impostazione predefinita, il provisioning automatico tenterà di creare e usare un ID app con caratteri jolly e un profilo di provisioning anziché un ID app esplicito in base all'identificatore del bundle dell'app. Gli ID app con caratteri jolly riducono il numero di profili e ID da gestire nell'account apple developer. Per altre informazioni sugli ID app con caratteri jolly, vedere Creare un profilo di provisioning di sviluppo.

In alcuni casi, l'entitlement dell'app richiede un ID app esplicito. Gli entitlement seguenti non supportano gli ID app con caratteri jolly:

  • Gruppi di app
  • Domini associati
  • Apple Pay
  • Area giochi
  • HealthKit
  • HomeKit
  • Hotspot
  • Acquisto in-app
  • A percorsi multipli
  • NFC
  • VPN personale
  • Notifiche push
  • Configurazione accessori wireless

Se l'app usa uno di questi diritti, Visual Studio tenterà di creare un ID app esplicito.

Risoluzione dei problemi

L'approvazione di un nuovo account per sviluppatore Apple potrebbe richiedere diverse ore. Non sarà possibile abilitare il provisioning automatico finché l'account non è stato approvato.

Se il processo di provisioning automatico ha esito negativo con il messaggio Authentication Service Is Unavailabledi errore , accedere a App Store Connect o all'account Apple Developer per verificare di aver accettato i contratti di servizio più recenti.

Il certificato non è disponibile nel portachiavi locale

Se si usano più computer per lo sviluppo, è possibile che venga visualizzato il messaggio di errore seguente quando si tenta di configurare il provisioning automatico in un computer: "Si è verificato un errore durante il tentativo di effettuare automaticamente il provisioning del progetto: 'Certificate: Apple Development: Create via API (Key ID)' esiste già ma non è disponibile nel Keychain locale. Potrebbe essere stato creato in un altro computer di sviluppo. Importare il certificato e la chiave privata dal computer o revocarlo e riprovare a crearne uno nuovo.":

Screenshot dell'errore di provisioning automatico quando non è possibile trovare il certificato.

Questo problema può verificarsi perché il provisioning automatico non rimuove la necessità di copiare manualmente i certificati tra computer, quando si usano più computer per lo sviluppo. Ciò è dovuto al fatto che la chiave privata che crea un certificato esiste solo nel computer che ha creato il certificato.

Per scoprire se nel computer di sviluppo non è presente un certificato obbligatorio, in Visual Studio passare a Opzioni strumenti > > Account Apple Xamarin>. Quindi, nella finestra di dialogo Account sviluppatore Apple selezionare un team e fare clic sul pulsante Visualizza dettagli...

Screenshot della finestra Dettagli quando il certificato non è incluso nel portachiavi.

Se il certificato richiesto non è installato nel computer, nella finestra Dettagli verrà visualizzato lo stato "Not in Keychain" per il certificato. In questo scenario, il certificato specifico deve essere esportato dal computer che lo ha creato, in formato p12 e quindi importato in Visual Studio con il pulsante Importa certificato .

Nota

  • Per copiare un certificato da un Mac a un altro Mac, esportare il certificato da Keychain Access sul Mac che ha creato il certificato e quindi importarlo in Accesso portachiavi sull'altro Mac.
  • Per copiare un certificato da un Mac in un computer Windows, esportare il certificato da Keychain Access nel Mac e quindi nel computer Windows importarlo in Visual Studio con il pulsante Importa certificato .
  • Non è possibile copiare un certificato creato da Visual Studio in un computer Windows, in un altro computer, perché è protetto da password.

Dopo l'importazione del certificato, Visual Studio visualizzerà lo stato "Valido":

Screenshot della finestra Dettagli quando il certificato è stato aggiunto al keychain.

Dovrebbe quindi essere possibile che Visual Studio esegete automaticamente il provisioning del progetto.