Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'approccio più comune alla distribuzione di app iOS agli utenti consiste nell'App Store. Le app vengono inviate all'App Store tramite uno strumento online denominato App Store Connect. Solo gli sviluppatori che appartengono al Programma Apple Developer hanno accesso a questo strumento. I membri del programma Apple Developer Enterprise non hanno accesso. Tutte le app inviate all'App Store richiedono l'approvazione da Apple.
La distribuzione di un'app iOS richiede il provisioning dell'app usando un profilo di provisioning. I profili di provisioning sono file che contengono informazioni sulla firma del codice, nonché l'identità dell'app e il relativo meccanismo di distribuzione previsto.
Per distribuire un'app iOS (.NET Multi-Platform App UI) multipiattaforma , è necessario creare un profilo di provisioning di distribuzione specifico. Questo profilo consente di firmare digitalmente l'app per il rilascio in modo che possa essere installata in un dispositivo iOS. Un profilo di provisioning di distribuzione contiene un ID app e un certificato di distribuzione. Puoi usare lo stesso ID app usato durante la distribuzione dell'app in un dispositivo per il test. Tuttavia, è necessario creare un certificato di distribuzione per identificare se stessi o l'organizzazione, se non ne è già disponibile uno.
Il processo di creazione di un profilo di provisioning della distribuzione di App Store è il seguente:
- Creare un certificato di distribuzione. Per altre informazioni, vedere Creare un certificato di distribuzione.
- Creare un ID app. Per altre informazioni, vedere Creare un ID app.
- Creare un profilo di provisioning. Per altre informazioni, vedere Creare un profilo di provisioning.
Importante
Apple ha un'informativa sulla privacy per le app destinate a iOS nell'App Store. È necessario che l'app includa un file manifesto della privacy nel bundle dell'app, che elenca i tipi di dati raccolti dall'app MAUI .NET o da qualsiasi SDK e pacchetti di terze parti e i motivi per cui si usano le API per motivi necessari. Se l'uso delle API necessarie o degli SDK di terze parti non viene dichiarato nel manifesto della privacy, l'app potrebbe essere rifiutata dall'App Store. Per altre informazioni, vedere Il manifesto della privacy di Apple.
Creare un certificato di distribuzione
Viene usato un certificato di distribuzione per confermare l'identità. Prima di creare un certificato di distribuzione, è necessario assicurarsi di aver aggiunto l'account apple developer a Visual Studio. Per altre informazioni, vedere Gestione degli account Apple.
È necessario creare un certificato di distribuzione solo se non ne è già disponibile uno. Il certificato di distribuzione deve essere creato usando l'ID Apple per l'account Apple Developer.
Per creare un certificato di distribuzione in Visual Studio:
- 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 fare clic su Crea certificato e selezionare Distribuzione iOS. Verrà creata una nuova identità di firma e verrà eseguita la sincronizzazione con Apple, purché siano disponibili le 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 di distribuzione contiene certificati, chiavi associate e tutti i profili di provisioning associati all'account Apple Developer. Esistono due versioni di un profilo di distribuzione, 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 la ricreazione dei profili di provisioning.
Creare un profilo di distribuzione
Un profilo di provisioning di distribuzione consente all'app .NET MAUI iOS di essere firmata digitalmente per la versione, in modo che possa essere installata in un dispositivo iOS. Un profilo di provisioning di distribuzione contiene un ID app e un certificato di distribuzione.
Creare un'ID app
È necessario un ID app per identificare l'app che si sta distribuendo. 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. Puoi usare lo stesso ID app usato durante la distribuzione dell'app in un dispositivo per il test.
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 distribuire più app 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 la distribuzione di un'app, con un identificatore di bundle corrispondente. Gli ID app espliciti vengono in genere usati per le app che abilitano funzionalità specifiche dell'app, ad esempio Apple Pay o Game Center. Per altre informazioni sulle funzionalità, vedere Funzionalità.
Per creare un nuovo ID app:
Nell'account apple developer passare a Certificati, ID e profili.
Nella pagina Certificati, Identificatori e profili selezionare la scheda Identificatori .
Nella pagina Identificatori fare clic sul + pulsante per creare un nuovo ID app.
Nella pagina Registra un nuovo identificatore selezionare il pulsante di opzione ID app prima di fare clic sul pulsante Continua:
Nella pagina Registra un nuovo identificatore selezionare App prima di fare clic sul pulsante Continua :
Nella pagina Registra un ID app immettere una descrizione e selezionare il pulsante di opzione ID bundle esplicito o jolly . Immettere quindi l'ID bundle per l'app in formato DS inverso:
Importante
L'ID bundle immesso deve corrispondere all'identificatore bundle nel file Info.plist nel progetto dell'app.
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.
Nella pagina Registra un ID app selezionare le funzionalità usate dall'app. Tutte le funzionalità devono essere configurate sia in questa pagina che nel file Entitlements.plist nel progetto dell'app. Per altre informazioni, vedere Funzionalità e diritti.
Nella pagina Registra un ID app fare clic sul pulsante Continua .
Nella pagina Conferma ID app fare clic sul pulsante Registra .
Creare un profilo di provisioning
Dopo aver creato l'ID app, è necessario creare un profilo di provisioning della distribuzione. Questo profilo consente di firmare digitalmente l'app per il rilascio in modo che possa essere installata in un dispositivo iOS.
Per creare un profilo di provisioning per la distribuzione di App Store:
Nella pagina Certificati, Identificatori e profili dell'account Apple Developer selezionare la scheda Profili .
Nella scheda Profili fare clic sul + pulsante per creare un nuovo profilo.
Nella pagina Registra un nuovo profilo di provisioning selezionare il pulsante di opzione App Store prima di fare clic sul pulsante Continua:
Nell'elenco a discesa ID app della pagina Genera profilo di provisioning selezionare l'ID app creato in precedenza prima di fare clic sul pulsante Continua:
Nella pagina Genera profilo di provisioning selezionare il pulsante di opzione corrispondente al certificato di distribuzione prima di fare clic sul pulsante Continua:
Nella pagina Genera profilo di provisioning immettere un nome per il profilo di provisioning prima di fare clic sul pulsante Genera:
Nota
Prendere nota del nome del profilo di provisioning, perché sarà necessario quando si firma l'app.
Nella pagina Genera un profilo di provisioning fare clic sul pulsante Scarica per scaricare il profilo di provisioning.
Nota
Non è necessario scaricare ora il profilo di provisioning. Questa operazione verrà invece eseguita in Visual Studio.
Scaricare i profili di provisioning in Visual Studio
Dopo aver creato un profilo di provisioning della distribuzione 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 sviluppatore Apple selezionare il team e fare clic su 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 su Scarica tutti i profili.
I profili di provisioning vengono 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.
Pubblicazione dell'app
Visual Studio può pubblicare un'app IOS .NET per la distribuzione di App Store e caricarla nell'App Store. Tuttavia, prima di poter caricare un'app nell'App Store, è necessario:
- Creare un record per l'app da caricare nell'App Store in App Store Connect. Questo record include tutte le informazioni sull'app così come verranno visualizzate nell'App Store e tutte le informazioni necessarie per gestire l'app tramite il processo di distribuzione. Per altre informazioni, vedere Creare un record di app in developer.apple.com.
- Creare una password specifica dell'app. Per informazioni sulla generazione di una password specifica dell'app, vedere Accedere alle app con l'ID Apple usando password specifiche dell'app in support.apple.com.
Per pubblicare un'app iOS .NET MAUI per la distribuzione dell'App Store:
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.
Nella barra degli strumenti di Visual Studio usare l'elenco a discesa Destinazione di debug per selezionare Dispositivi remoti iOS e quindi Dispositivo remoto:
Nella barra degli strumenti di Visual Studio usare l'elenco a discesa Configurazione soluzioni per passare dalla configurazione di debug alla configurazione della versione:
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 Scheme sia impostato su Provisioning manuale, l'identità di firma sia impostata su Distribuzione (automatica) e il profilo di provisioning sia impostato su Automatico:
Queste impostazioni garantiscono che Visual Studio selezioni il profilo di provisioning corretto in base all'identificatore del bundle in Info.plist (identico al valore della proprietà ID applicazione nel file di progetto). In alternativa, impostare l'identità di firma sul certificato di distribuzione appropriato e sul profilo di provisioning sul profilo creato nell'account Apple Developer.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto di app .NET MAUI e scegliere Pubblica...:
Gestione archivio aprirà e Visual Studio inizierà ad archiviare il bundle dell'app:
Il processo di archiviazione firma l'app con il certificato e i profili di provisioning specificati nella scheda Firma bundle iOS per la configurazione della soluzione selezionata.
In Gestione archivi, una volta completata l'archiviazione, verificare che l'archivio sia selezionato e quindi selezionare il pulsante Distribuisci ... per avviare il processo di creazione del pacchetto dell'app per la distribuzione:
Verrà visualizzata la finestra di dialogo Distribuisci - Seleziona canale .
Nella finestra di dialogo Distribuisci - Seleziona canale selezionare il pulsante App Store:
Nella finestra di dialogo Distribuisci - Identità di firma selezionare l'identità di firma e il profilo di provisioning:
Nota
È consigliabile usare l'identità di firma e il profilo di provisioning creati per l'app e il canale di distribuzione selezionato.
Nella finestra di dialogo Distribuisci - Identità di firma selezionare il pulsante Salva con nome o il pulsante Carica nell'archivio. Il pulsante Salva con nome consente di immettere un nome file, prima di firmare nuovamente l'app e pubblicarla in un file con estensione ipa nel file system per il caricamento successivo nell'App Store tramite un'app come Transporter. Il pulsante Carica nello Store rifirmerà l'app e la pubblicherà in un file con estensione ipa , prima di caricarla nell'App Store.
Se si seleziona il pulsante Carica nell'archivio , la finestra di dialogo Carica per archiviare le credenziali verrà visualizzata dopo che Visual Studio ha creato il file con estensione ipa . Nella finestra di dialogo Carica per archiviare le credenziali immettere l'ID Apple e la password specifica dell'app e selezionare il pulsante OK:
Visual Studio convaliderà il pacchetto dell'app e lo caricherà nell'App Store, purché tu abbia creato un record dell'applicazione in App Store Connect.
Per informazioni sulla pubblicazione di un'app iOS tramite l'interfaccia della riga di comando, vedere Pubblicare un'app iOS usando la riga di comando.
Risoluzione dei problemi
Il transporter può essere usato per identificare gli errori con i pacchetti dell'app che interrompino l'invio riuscito all'App Store.