Provisioning manuale per le app iOS
Il provisioning manuale è un approccio per la distribuzione di un'app iOS .NET Multipiattaforma (.NET MAUI) in un dispositivo, in cui si ha il controllo completo sui dati di provisioning creati. Con questo approccio, è possibile creare e gestire manualmente identità di firma, ID app e profili di provisioning nell'account Apple Developer e quindi scaricare questi dati in Visual Studio. Prima di avviare il processo di provisioning manuale, è necessario assicurarsi di aver aggiunto l'account per sviluppatore Apple a Visual Studio. Per altre informazioni, vedere Gestione degli account Apple.
I team di sviluppo, i certificati e i profili possono essere gestiti accedendo alla sezione Certificati, Identificatori e profili dell'account Apple Developer.
Creare un certificato di firma
Con il provisioning manuale, il primo passaggio per configurare un dispositivo di sviluppo consiste nel creare un certificato di firma, costituito da un certificato di sviluppo e una chiave privata.
I certificati di sviluppo e le chiavi associate stabiliscono l'identità con Apple e si associano a dispositivi e profili specifici per lo sviluppo. Questo è analogo all'aggiunta della firma digitale alle app. Apple usa questi certificati per garantire che sia possibile distribuire solo le app in dispositivi specifici.
Importante
È possibile avere solo due certificati di sviluppo iOS contemporaneamente. Se è necessario crearne altri, occorre revocarne uno esistente. Un computer con un certificato revocato non sarà in grado di firmare le app.
Dopo aver aggiunto l'account Apple Developer a Visual Studio, è necessario generare un certificato di firma:
- In Visual Studio passare a Strumenti > Opzioni > account Apple Xamarin>.
- Nella finestra di dialogo Account sviluppatore Apple selezionare un team e quindi selezionare Visualizza dettagli.
- Nella finestra di dialogo Dettagli selezionare Crea sviluppo iOS del certificato>. Verrà creata una nuova identità di firma e si sincronizzerà con Apple se si dispone delle autorizzazioni corrette.
Importante
La chiave privata e il certificato che costituiscono l'identità di firma verranno esportati anche in Keychain Access nell'host di compilazione Mac, purché l'IDE sia associato. Per altre informazioni, vedere Associare a Mac per lo sviluppo iOS.
Coppie di chiavi del certificato
Un profilo sviluppatore contiene certificati, chiavi associate e tutti i profili di provisioning associati all'account apple developer. Esistono due versioni di un profilo di sviluppo, una nell'account Apple Developer e l'altra si trova in un computer locale. La differenza tra i due è il tipo di chiavi che contengono: il profilo nell'account Apple Developer contiene tutte le chiavi pubbliche associate ai certificati, mentre la copia nel computer locale contiene tutte le chiavi private. Affinché i certificati siano validi, le coppie di chiavi devono corrispondere.
Avviso
La perdita del certificato e delle chiavi associate può comportare un'interruzione incredibile, perché richiederà la revoca dei certificati esistenti e il nuovo provisioning di tutti i dispositivi associati. Dopo aver configurato correttamente un certificato di sviluppo, esportare una copia di backup e archiviarla in un luogo sicuro. Per altre informazioni su come eseguire questa operazione, vedere Esportare gli account per sviluppatori in help.apple.com.
Effettuare il provisioning di un dispositivo iOS per lo sviluppo
Dopo aver creato un certificato di firma, è necessario configurare un profilo di provisioning di sviluppo in modo che sia possibile distribuire l'app in un dispositivo. Il dispositivo deve eseguire una versione di iOS supportata da Xcode.
Aggiungere un dispositivo
Quando si crea un profilo di provisioning, il profilo deve includere i dispositivi che possono eseguire l'app. Prima di selezionare un dispositivo da aggiungere a un profilo di provisioning, devi prima aggiungere il dispositivo all'account Apple Developer. È possibile aggiungere il dispositivo con la procedura seguente:
Connettere il dispositivo di cui eseguire il provisioning al Mac locale con un cavo USB.
Aprire Xcode e passare a Dispositivi e simulatori finestra>.
In Xcode selezionare la scheda Dispositivi e selezionare il dispositivo dall'elenco dei dispositivi connessi.
In Xcode copiare il valore dell'identificatore negli Appunti:
In un Web browser passare alla sezione Dispositivi dell'account Apple Developer e fare clic sul + pulsante .
Nella pagina Registra un nuovo dispositivo impostare la piattaforma corretta e specificare un nome per il nuovo dispositivo. Incollare quindi l'identificatore dagli Appunti nel campo ID dispositivo (UDID) e fare clic su Continua:
Nella pagina Registra un nuovo dispositivo esaminare le informazioni e quindi fare clic su Registra.
Ripetere i passaggi precedenti per qualsiasi dispositivo iOS in cui si vuole distribuire un'app iOS .NET MAUI.
Creare un'ID app
Dopo aver aggiunto un dispositivo all'account Apple Developer, è necessario creare un ID app. Un ID app è simile a una stringa DNS inversa, che identifica in modo univoco un'app e deve essere identico all'identificatore del bundle per l'app.
Importante
L'identificatore del bundle per un'app MAUI .NET viene archiviato nel file di progetto come proprietà ID applicazione. In Visual Studio, in Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto di app .NET MAUI e scegliere Proprietà. Passare quindi alla scheda Generale condiviso > MAUI. Il campo ID applicazione elenca l'identificatore del bundle.
Quando il valore del campo ID applicazione viene aggiornato, il valore dell'identificatore bundle in Info.plist verrà aggiornato automaticamente.
Esistono due tipi di ID app:
- Carattere jolly. Un ID app con caratteri jolly consente di usare un singolo ID app per trovare una corrispondenza con più app e in genere assume il formato
com.domainname.*
. Un ID app con caratteri jolly può essere usato per installare la maggior parte delle app in un dispositivo e deve essere usato per le app che non abilitano funzionalità specifiche dell'app. - Esplicita. Un ID app esplicito è univoco per una singola app e in genere assume il formato
com.domainname.myid
. Un ID app esplicito consente l'installazione di un'app, con un identificatore di bundle corrispondente, a un dispositivo. Gli ID app espliciti vengono in genere usati per le app che abilitano funzionalità specifiche dell'app, ad esempio Apple Pay o Game Center.
L'approccio consigliato consiste nel creare un ID app con caratteri jolly, a meno che l'app non usi funzionalità specifiche dell'app. Per altre informazioni sulle funzionalità, vedere Funzionalità.
È possibile creare un ID app con caratteri jolly con la procedura seguente:
In un Web browser passare alla sezione Identificatori dell'account Apple Developer e fare clic sul + pulsante .
Nella pagina Registra un nuovo identificatore selezionare ID app e fare clic sul pulsante Continua.
Nella pagina Registra un nuovo identificatore selezionare il tipo di app e fare clic sul pulsante Continua.
Nella pagina Registra un ID app specificare una descrizione e impostare l'ID bundle su Carattere jolly. Immettere quindi un ID app nel formato
com.domainname.*
e fare clic sul pulsante Continua :Nella pagina Conferma ID app esaminare le informazioni e quindi fare clic sul pulsante Registra.
Creare un profilo di provisioning di sviluppo
Dopo aver creato l'ID app, è necessario creare un profilo di provisioning di sviluppo. Un profilo di provisioning contiene informazioni sull'app (o le app, se si tratta di un ID app con caratteri jolly) a cui si riferisce il profilo, a chi può usare il profilo (a seconda dei certificati per sviluppatori aggiunti) e a quali dispositivi può installare l'app.
È possibile creare un profilo di provisioning di sviluppo seguendo questa procedura:
In un Web browser passare alla sezione Profili dell'account Apple Developer e fare clic sul + pulsante .
Nella sezione Sviluppo della pagina Registra un nuovo profilo di provisioning selezionare Sviluppo app iOS e fare clic sul pulsante Continua:
Nella pagina Genera un profilo di provisioning selezionare l'ID app da usare e quindi fare clic sul pulsante Continua.
Nella pagina Genera un profilo di provisioning selezionare i certificati da includere nel profilo di provisioning e quindi fare clic sul pulsante Continua.
Nella pagina Genera un profilo di provisioning selezionare i dispositivi in cui verrà installata l'app e quindi fare clic sul pulsante Continua.
Nella pagina Genera profilo di provisioning specificare un nome di profilo di provisioning e quindi fare clic sul pulsante Genera.
Nella pagina Genera un profilo di provisioning è possibile fare clic sul pulsante Scarica per scaricare il profilo di provisioning.
Scaricare i profili di provisioning
Dopo aver creato un profilo di provisioning di sviluppo nell'account apple Developer, Visual Studio può scaricarlo in modo che sia disponibile per la firma dell'app:
- In Visual Studio passare a Strumenti > Opzioni > account Apple Xamarin>.
- Nella finestra di dialogo Account per sviluppatori Apple selezionare un team e fare clic sul pulsante Visualizza dettagli.
- Nella finestra di dialogo Dettagli verificare che il nuovo profilo venga visualizzato nell'elenco Profili di provisioning. Potrebbe essere necessario riavviare Visual Studio per aggiornare l'elenco.
- Nella finestra di dialogo Dettagli fare clic sul pulsante Scarica tutti i profili.
I profili di provisioning verranno scaricati in Windows ed esportati nell'host di compilazione Mac se l'IDE è associato. Per altre informazioni, vedere Associare a Mac per lo sviluppo iOS.
Abilitare il provisioning manuale
Dopo aver creato manualmente il profilo di provisioning dello sviluppo e installarlo in Visual Studio, il progetto di app .NET MAUI deve essere configurato per l'uso del provisioning manuale:
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto di app .NET MAUI e scegliere Proprietà. Passare quindi alla scheda Generale condiviso > MAUI e verificare che il valore del campo ID applicazione corrisponda al formato dell'ID app creato in precedenza.
Nelle proprietà del progetto passare alla scheda Firma bundle iOS e assicurarsi che il provisioning manuale sia selezionato nell'elenco a discesa Schema:
Nelle proprietà firma bundle selezionare l'identità di firma e il profilo di provisioning oppure impostare entrambi su Automatico. Quando l'identità di firma e il profilo di provisioning sono entrambi impostati su Automatico, Visual Studio selezionerà l'identità di firma e il profilo di provisioning in base all'identificatore bundle in Info.plist (identico al valore della proprietà ID applicazione nel file di progetto).
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:
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.
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.
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:
Nella barra degli strumenti di Visual Studio premere il pulsante Start verde per avviare l'app nel dispositivo remoto:
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.
Provisioning dei servizi delle applicazioni
Apple offre una selezione di servizi dell'applicazione, noti come funzionalità, che possono essere attivati per un'app .NET MAUI iOS. Queste funzionalità devono essere configurate in entrambi i profili di provisioning, quando viene creato l'ID app e nel file Entitlements.plist che deve essere aggiunto al progetto di app MAUI .NET. Per altre informazioni sulle funzionalità, vedere Entitlement e funzionalità.