Distribuzione tramite l'App Store

Dopo che un'app Xamarin.iOS è stata sviluppata, il passaggio successivo del ciclo di vita dello sviluppo software è la distribuzione dell'app agli utenti tramite l'App Store iTunes. Questa è la modalità di distribuzione più comune per le applicazioni. Pubblicando un'applicazione nell'App Store di Apple, è possibile renderla disponibile per gli utenti di tutto il mondo.

Importante

Apple ha indicato che a partire da marzo 2019 tutte le app e gli aggiornamenti inviati all'App Store devono essere stati compilati con iOS 12.1 SDK o versioni successive, disponibili in Xcode 10.1 o versioni successive. Le app devono anche supportare iPhone Xs e le dimensioni dello schermo 12,9" di iPad Pro.

Importante

Per le risorse relative all'avviso di deprecazione (ITMS-90809) durante l'uso UIWebView di Xamarin.Forms, vedere la documentazione di WebView di Xamarin.Forms.

Per distribuire un'applicazione, come per sviluppare un'applicazione, è necessario effettuare il provisioning dell'applicazione con il profilo di provisioning appropriato. I profili di provisioning sono file che contengono le informazioni sulla firma del codice, oltre all'identità dell'applicazione e al meccanismo di distribuzione previsto. Contengono anche informazioni sui dispositivi in cui l'app può essere distribuita per la distribuzione senza App Store.

Importante

Per usare iTunes Connect e quindi per pubblicare un'app nell'App Store, è necessario fare parte di un programma Apple Developer per singoli utenti o per organizzazioni. Non sarà possibile eseguire i passaggi di questa pagina se si è membri di un programma Apple Developer Enterprise.

Provisioning di un'app per la distribuzione nell'App Store

Indipendentemente da come si prevede di rilasciare un'applicazione Xamarin.iOS, sarà necessario compilare un profilo di provisioning di distribuzione specifico. Questo profilo consente di applicare una firma digitale all'applicazione per il rilascio in modo che possa essere installata in un dispositivo iOS. Analogamente a un profilo di provisioning di sviluppo, un profilo di distribuzione conterrà quanto segue:

  • Un ID app
  • Un certificato di distribuzione

È possibile selezionare lo stesso ID app e gli stessi dispositivi usati per il profilo di provisioning di sviluppo, ma, se non ne è già disponibile uno, sarà necessario creare un certificato di distribuzione per identificare l'organizzazione quando si invia l'app all'App Store. La procedura di creazione di un certificato di distribuzione è descritta nella sezione successiva.

Nota

Solo gli agenti e gli amministratori del team possono creare i certificati di distribuzione e i profili di provisioning.

Creazione di un certificato di distribuzione

  1. Passare alla sezione Certificates, Identifiers & Profiles (Certificati, identificatori e profili) di Apple Developer Member Center.

  2. In Certificates (Certificati) selezionare Production (Produzione).

  3. Fare clic sul pulsante + per creare un nuovo certificato.

  4. Nell'intestazione Production (Produzione) selezionare App Store and Ad Hoc (App Store e ad hoc):

    Select App Store and Ad Hoc

  5. Fare clic su Continue (Continua) e seguire le istruzioni per creare una richiesta di firma del certificato tramite l'accesso keychain:

    Create a Certificate Signing Request via Keychain Access

  6. Dopo avere creato la richiesta di firma del certificato in base alle istruzioni, fare clic su Continue (Continua) e caricarla in Member Center:

    Upload the CSR to the Member Center

  7. Fare clic su Generate (Genera) per creare il certificato.

  8. Scaricare infine il certificato completato e fare doppio clic sul file per installarlo.

  9. A questo punto, il certificato deve essere installato nel computer, ma potrebbe essere necessario aggiornare i profili per assicurarsi che siano visibili in Xcode.

In alternativa, è possibile richiedere un certificato tramite la finestra di dialogo Preferences (Preferenze) in Xcode. A questo scopo, eseguire la procedura seguente.

  1. Selezionare il team e fare clic su Gestisci certificati...: Select the team and View Details

  2. Fare quindi clic sul pulsante Crea accanto a Certificato di distribuzione iOS: Create an iOS Distribution Certificate

  3. A seconda dei privilegi del team, l'identità di firma verrà generata, come illustrato di seguito, oppure potrebbe essere necessario attendere che un agente del team o un amministratore lo approvi: The signing identity will be generated and a dialog displayed

Creazione di un profilo di distribuzione

Creazione di un ID app

Come per qualsiasi altro profilo di provisioning creato, è necessario un ID app per identificare l'app che viene distribuita nel dispositivo dell'utente. Se non è già stato creato, seguire questa procedura per crearne uno:

  1. Nel centro sviluppatori Apple passare alla sezione Certificate, Identifiers and Profiles (Certificati, identificatori e profili). Selezionare App IDs (ID app) in Identifiers (Identificatori).
  2. Fare clic sul pulsante + e specificare un nome lo identificherà nel portale.
  3. Il prefisso App sarà già impostato come ID del team e non può essere modificato. Selezionare un ID app esplicito o con caratteri jolly e immettere un ID bundle in un formato DNS inverso, ad esempio:
    • Esplicito: com.[NomeDominio].[NomeApp]
    • Con caratteri jolly:com.[NomeDominio].*
  4. Selezionare il servizio app richiesto dall'app.
  5. Fare clic sul pulsante Continue (Continua) e seguire le istruzioni visualizzate sullo schermo per creare il nuovo ID app.

Creazione di un profilo di provisioning

Quando i componenti necessari per la creazione di un profilo di distribuzione sono disponibili, seguire questi passaggi per crearne uno:

  1. Tornare al portale di provisioning Apple e selezionare Provisioning>Distribution (Distribuzione):

    RSelect Provisioning > Distribution

  2. Fare clic sul pulsante + e selezionare il tipo di profilo di distribuzione che si vuole creare come App Store:

    Create an App Store distribution profile

  3. Fare clic sul pulsante Continue (Continua) e selezionare un ID app nell'elenco a discesa per il quale si vuole creare un profilo di distribuzione:

    Select App ID from the dropdown list

  4. Fare clic sul pulsante Continue (Continua) e selezionare il certificato necessario per firmare l'applicazione:

    Select the certificate required to sign the application

  5. Fare clic sul pulsante Continue (Continua) e selezionare i dispositivi iOS in cui sarà consentito eseguire l'applicazione Xamarin.iOS:

    Select the iOS devices that app will be allowed to run on

  6. Fare clic sul pulsante Continue (Continua) e immettere un nome per il nuovo profilo di distribuzione:

    Enter a Name for the new Distribution Profile

  7. Fare clic sul pulsante Generate (Genera) per creare il nuovo profilo e finalizzare il processo.

Prima che un nuovo profilo di distribuzione sia disponibile in Visual Studio per Mac, potrebbe essere necessario uscire da Visual Studio per Mac e aggiornare in Xcode l'elenco di identità di firma e di profili di provisioning disponibili, seguendo le istruzioni della sezione Requesting Signing Identities (Richiesta di identità di firma).

Selezione di un profilo di distribuzione in un progetto Xamarin.iOS

Quando si è pronti per eseguire la compilazione finale di un'applicazione Xamarin.iOS per venderla nell'App Store iTunes, selezionare il profilo di distribuzione creato prima.

In Visual Studio per Mac seguire questa procedura:

  1. Fare doppio clic sul nome del progetto in Esplora soluzioni per aprirlo e modificarlo.

  2. Selezionare Firma del bundle iOS e Versione | iPhone dall'elenco a discesa Configurazione:

    Select Release | iPhone from the Configuration dropdown

  3. Nella maggior parte dei casi, è possibile lasciare Identità di firma e Profilo di provisioning impostati sul valore predefinito Automatico. Visual Studio per Mac sceglierà il profilo corretto, in base all'Identificatore del bundle in Info.plist:

    The Signing Identity and the Provisioning Profile set to the default values of Automatic

  4. Se necessario, selezionare l'identità di firma e il profilo di distribuzione (quello creato prima) dagli elenchi a discesa:

    Select the Signing Identity and Distribution Profiles

  5. Fare clic su OK per salvare le modifiche.

Configurazione dell'applicazione in iTunes Connect

Dopo il corretto provisioning dell'applicazione, il passaggio successivo prevede la configurazione delle app in iTunes Connect, una suite di strumenti basati sul Web che consentono, a titolo di esempio, di gestire le applicazioni iOS nell'App Store.

È necessario che l'applicazione Xamarin.iOS sia correttamente impostata e configurata in iTunes Connect prima di poter essere inviata ad Apple per la revisione e, infine, rilasciata come app gratuita o in vendita in App Store.

Per altri dettagli, vedere la documentazione Configuring an App in iTunes Connect (Configurazione di un'app in iTunes Connect).

Invio di un'app a iTunes Connect

Dopo la firma dell'applicazione con il profilo di provisioning di distribuzione e la creazione dell'app in iTunes Connect, il file binario dell'applicazione viene caricato in Apple per la revisione. Se la revisione di Apple ha esito positivo, viene resa disponibile nell'App Store.

Per altre informazioni sulla pubblicazione di applicazioni nell'App Store, vedere Pubblicazione in App Store.

Copiare automaticamente i bundle delle app nuovamente in Windows

Quando si compilano app iOS in Visual Studio e con l'agente di compilazione Mac, il bundle dell'app non viene copiato nuovamente nel computer Windows. Gli strumenti Xamarin per Visual Studio 7.4 aggiungono una nuova proprietà CopyAppBundle che consente alle compilazioni CI di copiare nuovamente i bundle delle app in Windows.

Per usare questa funzionalità, aggiungere la proprietà CopyAppBundle al file con estensione .csproj sotto il gruppo di proprietà che si vuole applicare alla funzionalità. Ad esempio, di seguito viene illustrato come copiare nuovamente il bundle .app nel computer Windows per una compilazione di tipo Debug che ha come destinazione iPhoneSimulator:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
    <CopyAppBundle>true</CopyAppBundle>
</PropertyGroup>

Riepilogo

Questo articolo ha illustrato i componenti chiave della preparazione di un'applicazione Xamarin.iOS per la distribuzione nell'App Store.