[iOs] Distribuzione “ad hoc” di una app senza sincronizzazione con iTunes, direttamente da device

TestFlightApp LogoVi scrivo qui la procedura che sto seguendo per permettere ad un altro utente di installare la vostra app, senza ogni volta mandargli l’IPA (e relativo certificato di “Ad Hoc Distribution Provisioning”), e senza fargliela sincronizzare con iTunes.

La procedura permette di:

  • inviare una notifica all’utente di rilascio di una nuova versione beta, con relativa descrizione delle funzionalità o correzioni che avete fatto
  • far installare l’app direttamente da device, senza farglielo attaccare via usb al pc e sincronizzare l’IPA e certificato con iTunes
  • ricevere feedback e visualizzare quale è l’effettiva release installata dall’utente sul proprio device, grazie ad una interfaccia web di monitoraggio e di attività

Il servizio si chiama TestFlight ed è disponibile a questo indirizzo: https://testflightapp.com

Appunto, la procedura descritta è quella dell’ installazione “al volo” delle versioni beta delle app (ad hoc distribution over the air) e l’ho trovata molto molto comoda. Basta registrare un account, assolutamente free, e inserire poi le seguenti informazioni da una dashboard:

  • team di progetto: indirizzi email e relativi UUID dei device dei membri del vostro team (siano essi clienti o colleghi di lavoro)
  • certificati di Provisioning: per poter installare una IPA su un device, come sapete, occorre un certificato di ” Provisioning Ad Hoc Distribution”, come descritto anche in un precedente articolo di questo blog: [iOs] Archiviazione e distribuzione di un “ad hoc build” o IPA file con XCode 4

Il certificato di distribuzione “ad hoc” si aggiorna sempre sull’account di Apple Developer, ma lo si inserisce direttamente in TestFlight. Ogni volta, dunque, non dovete inviarlo di nuovo agli utenti, ma verrà aggiornato in automatico da TestFlight stesso quando viene installata la release dell’app inviata.

Per ciascuna release, TestFlight vi permette di inviare una notifica solo ad alcuni utenti a cui dare il permesso di installarla, dandovi informazioni su quando, se e da chi è stata installata.

Nulla di più semplice :)

TestFlightApp

[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: