Distribuzione delle app iOS

Esistono diversi modi per pubblicare e distribuire un’app per dispositivi iOS; ma a differenza di altri SO non è così semplice poter installare un’app su qualsiasi device. In questo articolo sono elencate e spiegate le diverse modalità di distribuzione.

Le possibilità di distribuzione di un’app sono quattro:

App Store

Come il nome stesso lascia intuire si tratta della modalità che permette di distribuire un’app attraverso l’AppStore di Apple.
Un’app distribuita tramite AppStore può essere installata da qualsiasi utente iOS a patto che la versione del sistema operativo e il tipo di device siano supportati dall’app.

La procedura prevede il caricamento del file dell’app (file .ipa) sul portale iTunesConnect attraverso XCode o tool come Application Loader (distribuita e installata insieme a XCode) dopo aver creato e compilato le informazioni che comporranno la scheda dell’app su AppStore.

Dopo aver caricato il file in iTunesConnect l’app non sarà subito disponibile e visibile; è infatti previsto un doppio controllo da parte di Apple. Uno automatico (della durata di qualche minuto) sul codice caricato (per verificare ad esempio che non siano state usate API ‘private’ o non consentite) e uno manuale che potrà impiegare fino a una settimana (ma i tempi medi sono di 3 / 4 giorni).
Alla fine di entrambi i controlli saranno notificati eventuali problematiche per permetterne la risoluzione e nel peggiore dei casi ricaricare una nuova versione dell’app con le correzioni necessarie. Dal controllo manuale potrebbero essere richieste anche solo informazioni a corredo dell’app (per esempio licenze ecc) e non essere necessario modificare e ricaricare l’app.

Per questo tipo di distribuzione è necessario un account Apple Developer.

Ad Hoc

Con questo tipo di distribuzione non caricherete nulla su iTunesConnect e l’app non sarà visibile sull’App Store. All’interno dell’account sviluppatore è possibile registrare 100 device per ogni tipo (iPhone, iPad, Apple Watch, Apple TV ecc.).
Per registrare un singolo device è necessario fornire l’UDID (Univoque Device IDentifier) che identifica univocamente un dispositivo.

Dopo aver registrato i device, deve essere creato un Provisioning Profile di tipo AdHoc per firmare l’app dopo la compilazione; all’interno del provisioning sono contenuti i device per i quali è consentita l’installazione. Se si proverà ad installare l’app su un device non registrato nel portale e non contenuto nel provisioning, l’installazione fallirà.

Questo tipo di distribuzione è limitata per il numero di device registrabili e perchè dopo massimo un anno bisognerà ricreare un nuovo provisioning e distribuire nuovamente l’app. L’uso di questo tipo è di solito rivolto a versioni di test di un’app per un numero limitato di utenti nel breve periodo.

Non essendo richiesto l’upload su iTunesConnect (è sufficiente distribuire l’app anche tramite una pagina html ma erogata tramite protocollo https o invio diretto delfile .ipa), non è previsto nessun controllo da parte di Apple; l’app sarà subito disponibile agli utenti ai quali sarà comunicato l’url o inviato direttamente il file .ipa.

Per questo tipo di distribuzione è necessario un account Apple Developer.

Enterprise

Per questo tipo di distribuzione è necessario un account Apple Enterprise che differisce da quello standard in quanto non permette di caricare l’app su iTunesConnect e quindi pubblicarla sull’AppStore o utilizzare TestFlight.

Quello che è possibile fare con questo tipo di account è creare un provisioning Enterprise / Universale per firmare l’app. In questo modo sarà possibile distribuire e installare l’app su tutti i dispositivi (senza i limiti nel numero di device ad esempio della distribuzione Ad Hoc).

La distribuzione potrà avvenire tramite OTA (quindi come per Ad Hoc pagina html tramite protocollo https) o via MDM (Mobile Device Management).

TestFlight

Questo tipo di distribuzione prevede il caricamento dell’app in iTunesConnect (trattandosi di una funzione integrata) ma invece di inviarla ad Apple per la pubblicazione sull’app Store, la invierete (al primo caricamento è previsto l’app review da parte di Apple) per il  beta testing. Oltre al beneficio di non dover conoscere preventivamente gli UDID dei device il numero degli utenti supportati è nettamente superiore alla modalità Ad Hoc: fino ad un massimo di 10.000 tester.

La modalità TestFlight è disponibile anche per il cosiddetto internal testing, cioè test per utenti che fanno parte dell’azienda e censiti come membri all’interno dell’account Apple. In questo caso non è prevista l’app review da parte

Per questo tipo di distribuzione è necessario un account Apple Developer.