[iOs] Archiviazione e distribuzione di un “ad hoc build” o IPA file con XCode 4

Se volessimo distribuire la nostra app senza rilasciarla su Apple Store, magari per farla testare ad altri utenti, occorre seguire i seguenti passi.
Teoricamente, occorrerebbe creare un pacchetto “ad-hoc” (ad hoc build) firmandolo con un “ad hoc distribution provisioning profile” (certificato per la distribuzione creato su iOs Dev Center). Cioè dovremmo condividere oltre che il file .app anche un file .mobileprovision (con il certificato).
L’utente dovrà importare il file .mobileprovision nella barra sinistra di iTunes, insieme al file .app.
Il modo migliore è distribuire un file IPA contrassegnato con un “ad hoc distribution profile“, così che l’utente dovrà fare soltanto un doppio click sull’IPA file e installarlo in iTunes.

Operazione preliminare – Build & Archive
Per creare un file IPA, occorre usare direttamente XCode e rilasciare un Archivio (scheda Product e poi Archive). Verrà creato un archivio nell’Organizer, dove si dovrà scegliere il provisioning profile per firmarlo.
E’ buona norma utilizzare un “ad hoc distribution provisioning profile“, oppure è possibile usare un distribution profile con un nome generico (o con wildcard).

IMPORTANTE. Occorre generare un certificato “Ad Hoc Distribution” sulla propria pagina personale di DEV APPLE, associando il certificato ai dispositivi su cui poi si dovrà installare l’app (per la distribuzione al cliente, per esempio, prima della pubblicazione definitiva su Apple Store). Il dispositivo su cui installare l’app si associa inserendo nella pagina di DEV APPLE il codice UDID di 40 cifre alfanumeriche (vi riporto alla fine del presente articolo un riferimento che spiega come recuperarlo). Dopo averlo inserito, occorre generare un certificato di distribuzione “Ad Hoc” associandolo al dispositivo (sempre in DEV APPLE), scaricarlo e importarlo in Organizer di XCode (basta fare il doppio click sul file .mobileprovisioning). Una volta importato, occorre associare il certificato alla configurazione di XCode, come spiegato di seguito).

Creazione di una nuova configurazione in Project Settings
Si crea una configurazione (la possiamo chiamare Ad Hoc Distribution). Cliccare sul nome del progetto (pannello a sinistra) e nel pannello Groups & Files selezionare prima il progetto e poi il target.

Si duplica la voce Release e si crea una nuova configurazione a cui dare un nome (Ad Hoc Distribution, per esempio).

Setup del target
Nella scheda del Target, assicurarsi che sotto il tab Build Settings, selezionando ALL e COMBINED, in corrispondenza della voce Code Signing vi sia il corretto certificato per la distribuzione (nel nostro caso, “Ad Hoc Distribution”).

Skip install
Se nel progetto ci sono librerie statiche (tipo Cocos2d oppure Three20), occorre eseguire uno step extra che assicuri che esse vengano incluse nell’app binaria correttamente. Basta selezionare le singole librerie e nel pannello a destra, per ognuna di esse, occorre trovare la voce Skip Install (in Build Settings, gruppo Deployment – utilizzate la funzione di ricerca per velocizzare) e inserire il valore YES per la configurazione creata al passo precedente (“Ad Hoc Distribution“, nel nostro caso) .

NOTA. Lo step “Skip Install” è necessario solo se il progetto contiene le static libraries e deve essere eseguito SOLO per le static library e NON per il Target o il progetto della propria app.

Configurazione per l’Archive Scheme
Nel menù Product, vi è la voce Edit Scheme. Selezionare Archive dal pannello sinistro e poi settare Build Configuration con la propria configurazione (“Ad Hoc Distribution“, nel nostro caso), salvando.

Creazione dell’archivio
E’ possibile ora creare l’Archivio. Nel top menu, sotto la voce Product vi è l’opzione Archive. Quando l’operazione è terminata correttamente, sotto l’Organizer vi è il tab Archives con il nostro pacchetto.

Creazione del file IPA
Selezionato l’archivio appena creato, si può creare il file IPA, cliccando su Share e poi confermando il provisioning profile utilizzato. Andando avanti, scegliendo in corrispondenza di Contents la voce “iOS App Store Package .ipa“, si crea l’IPA file con un nome e lo si salva.

Adesso siamo pronti per distribuire il pacchetto IPA. L’utente che lo riceverà, dovrà semplicemente fare un doppio click e sincronizzare il proprio device con iTunes, per trovarsi l’app così installata.

Riferimenti:

8 pensieri su “[iOs] Archiviazione e distribuzione di un “ad hoc build” o IPA file con XCode 4

    • Ciao Mauro,

      devi andare su http://developer.apple.com, sezione Provisioning Profiles, poi scheda Distribution e generare un “New Profile” di tipo “Ad Hoc” e compilare tutti i campi selezionando i device su cui poi vuoi far testare l’app (compreso il tuo di sviluppo).

      Ovvio che devi prima inserire i device e questo lo fai nella sezione Devices, “Add Device” e compilando tutti i campi (tra cui l’UDID).

  1. Articolo molto bello, ma non capisco una cosa.
    Il device che clicca sul link dell’IPA sul sito deve essere un device registrato sulla mia pagina personale DEV Apple oppure possono scaricalo tutti? E nel caso potesse scaricarlo solo il device autorizzato, cosa succede quando tenta il download qualcun altro?

    • Ciao Michele,

      non ho capito cosa intendi con “il device che clicca sul link dell’IPA sul sito…”. Il codice UUID del device su cui occorre effettuare una distribuzione “ad-hoc” dell’IPA deve essere inserito nell’account di Developer Apple (associandolo al certificato “Ad Hoc” dell’app da testare).
      Poi per installarla su quel device, occorre trascinare sia l’IPA che il certificato “ad-hoc” in iTunes e sincronizzare. L’IPA non va scaricata da nessun sito, ma va generata con xCode e inviata al destinatario.
      Se si prova a fare quest’ultima procedura su un device il cui UUID non sia stato associato a questo certificato, l’IPA non viene installata (se non erro uscirà una popup sul display del device con un errore).

      • Ciao Francesco, ho fatto confusione io tra la distribuzione ad-hoc ed in-house ( per il quale non serve fornire l’UUID ).
        Per quanto riguarda l’IPA volevo rendere più semplice l’installazione del pacchetto ed in effetti ho visto che è possibile inserire in una pagina web il tutto Clicca per installare . Grazie ancora e complimenti per la guida!

  2. Pingback: Distribuzione "ad hoc" di una app senza sincronizzazione con iTunes

  3. Pingback: Pubblicare un App su AppStore direttamente da XCode 5

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


nove − = 3