Come pubblicare una App su App Store

Qualche giorno fa vi abbiamo descritto come realizzare una App per iPhone, ora vediamo la procedura corretta per pubblicarla sull’App Store.

Ecco i passi da seguire:

  • Acquisto di una licenza annuale da sviluppatore;
  • verifica che l’applicativo rispecchi le regole dettate nel documento chiamato iPhone/iPad Human Interface Guidelines;
  • verifica che l’applicativo non utilizzi Api non pubbliche e framework non ufficiali;
  • creazione di un sistema di chiavi necessarie per firmare il proprio applicativo sul Provisioning Portal;
  • creazione del profilo di pubblicazione XCode (ambiente di sviluppo per creare App Apple);
  • creazione di un file Entitlements;
  • modifica delle opzioni di compilazione del progetto;
  • compilazione e packaging;
  • pubblicazione su iTunes Connect;

Pubblicare una App su App Store

Acquisto della Licenza

Dopo aver effettuato dei test sulla propria applicazione con il tool SDK della Apple, per la fase di pubblicazione bisogna acquistare una licenza annuale del costo di 79€. Esistono vari tipi di licenza, ma i due più usati sono:

  • lo Standard Program;
  • l’Enterprise Program.

Quest’ultimo costa 200$ in più ed è indirizzato a società con più di 500 dipendenti e inibisce la possibilità di pubblicare su Apple Store favorendo, invece, la distribuzione interna ai propri dipendenti. Lo Standard Program, invece, è utilizzabile dai singoli sviluppatori, ma anche da società che intendono pubblicare su Apple Store.

Questi programmi consentono anche di testare i propri software, per un test più accurato, su dispositivi fisici, iPhone, iPad, iPod.

Altra caratteristica è la cosiddetta AdHoc Distribution, la procedura che consente di inviare ad altri dispositivi il vostro software per scopi di test e pubblicità. Questo tipo di distribuzione perde la sua validità solo dopo alcuni mesi essendo un sistema di distribuzione temporaneo e nasce per consentire l’invio a utenti test che non fanno parte del team di sviluppatori.

Altri vantaggi di questi programmi sono: la possibilità di acquistare versioni prerelease, l’accesso al forum degli sviluppatori Apple e una garanzia tecnica Apple per due anni.

SDK Apple

 

Registrarsi come Sviluppatore

Per registrarsi come sviluppatore bisogna accedere all’indirizzo http;//developer.apple.com/programs/iphone e cliccare sul bottone Enroll Now. A questo punto si dà inizio a una serie di passi obbligatori, che forniscono sufficienti informazioni a Apple per registrarsi. Quindi creiamo un account Apple e scegliamo Standard Program. Al termine di tutti i passi, è possibile che Apple provi a contattarvi per verificare che abbiamo inserito i dati correttamente.

Per le società, invece, Apple pretende via fax un documento legale che attesti l’effettiva esistenza della stessa e soprattutto l’iscrizione alla Camera di Commercio. Dopo alcuni giorni riceveremo una serie di email di conferma che ci consentiranno di finalizzare la registrazione.

Al termine avremo accesso a diversi portali per pubblicare i software; iPhone Provisioning Portal e iTunes Connect in primis. Il primo svolge la funzione di portale, ed è necessario accedervi per creare i certificati che vengono adoperati per testare su dispositivi fisici, e inviare le proprie applicazioni sull’Apple Store. iTunes Connect è il servizio che accetta i programmi realizzati per iPhone, iPad, iPod. Rappresenta l’ultimo passo necessario alla pubblicazione.

 

Verifica con la Human Interface Guidelines

Prima di inviare tutto a Apple occorre fare delle verifiche sul proprio software, in modo da sincerarsi che rispetti le regole elencate nel documento chiamato Human Interface guidelines (HIG). Il documento disponibile sia online, in formato HTML e PDF, sia nella documentazione allegata a XCode, detta le regole su cosa i valutatori Apple ritengono ammissibile in un’applicazione iPhone e cosa invece li obbliga a rifiutarla.

Le informazioni contenute al suo interno vanno seguite alla lettera da ogni sviluppatore per fare in modo che la propria applicazione sia coerente con tutte le altre già presenti su App Store. Gli errori in cui è possibile incorrere sono molti:

  • crash del software;
  • componenti visuali poco intuitivi;
  • icone dal significato fuorviante;
  • mancanza dell’UIAlertView, importante per tenere informato l’utente quando si presentano cadute di connessione;
  • si utilizzano icone diverse tra l’App Store e quella interna del software;
  • si supporta la rotazione dell’interfaccia senza riorganizzare il layout.

Metodi o funzioni non Pubbliche

La bocciatura di un software potrebbe non dipendere soltanto dalla HIG ma anche dal team di Apple dopo aver constatato l’utilizzo di funzioni, metodi e classi non disponibili nell’SDK. La regola di non adoperare Api private è presente nell’iPhone developer program license agreement, un documento che deve essere accettato quando si diviene sviluppatori iPhone e si acquista la licenza per pubblicare. Inoltre il compilatore XCode provvede ad avvisare lo sviluppatore tramite un warning, se si effettuano operazioni non consentite.

 

Tecnologie non Ufficiali

I linguaggi che Apple ha deciso di utilizzare sono C, C++, Objective-C o Javascript. Questa limitazione non impedisce, però, di adoperare librerie disponibili in Rete realizzate nei linguaggi suddetti, a p atto ovviamente che non accedano ad Api non documentate. Adoperare linguaggi diversi da quelli richiesti da Apple potrebbe comportare la non approvazione, per cui il nostro consiglio è evitare vie alternative e studiare a fondo l’Objective-C.

 

Validate Build Project

Per ridurre eventuali rifiuti, all’interno dell’XCode 3.2  è stata introdotta una nuova funzionalità chiamata Validate Build Product, attivabile tramite un checkbox disponibile nella configurazione di Build del progetto. Selezionando tale campo, si richiede che vengano effettuati molti check che i valutatori Apple effettuano quando ricevono un’applicazione. Questo serve naturalmente a ridurre al minimo evenutali problemi del software.

La Richiesta delle Chiavi

Prima di inviare il proprio software ad Apple occorre firmarlo digitalmente. I passi da seguire sono tre:

  • creazione del Certificato di Distribuzione;
  • creazione di un App ID di tipo generico o specifico;
  • creazione di un Provisioning Profile di Distribuzione per App Store.

Per quanto riguarda la creazione del Certificato di Distribuzione. Apple richiede che si invii un file identificato nella documentazione come Certificate Signing Request. Per creare questo documento è sufficiente effettuare alcuni passi all’interno dell’applicazione chiamata Keychain Access installato nella sottocartella Utility delle Applicazioni.

Dopo l’avvio dell’applicativo, effettuiamo la richiesta di un certificato verso una CA (Certification Authority). Nel campo di testo dedicato all’email occorre inserire quella utilizzata durante la fase di registrazione come sviluppatore iPhone. Il campo CA Email Address deve essere lasciato vuoto. Si dovrà poi selezionare il radio button, save to disk e il checkbox Let me specify key pair information per farlo sul proprio computer, allo scopo di inviarlo successivamente attraverso il Provisioning Portal. La dimensione della chiave deve essere di 2048 bit. l’algoritmo, Rsa.

Accediamo all’iPhone Dev Center per poi seguire il link presente sul lato destro, chiamato iPhone Provisioning Portal. La guida chiamata iPhone Developer Program User Guide, è la fonte migliore per chiarire qualsiasi dubbio ed è scaricabile dal link presente a destra della Home Page del Provisioning Portal.

Provisioning Portal

Provisioning Portal

Entriamo nella sezione chiamata Certificates, selezioniamo il tab posizionato in alto nella pagina, chiamato Distribution, e clicchiamo su Add Certificate. Inviamo il file che abbiamo creato, adoperando il form. Dopo un periodo di tempo, durante il quale lo stato del certificato è “pending”, troveremo all’interno della pagina il certificato con lo stato di “issued” associato a una data di scadenza.

Clicchiamo sul tasto download. Il certificato verrà installato automaticamente all’interno di Keychain Access, oppure si dovrà fare doppio clic sul file. E’ importante salvare una copia di backup di questo file. Ora dobbiamo creare un App ID di tipo generale, identificato con il simbolo di asterisco: nella sezione App IDs selezioniamo il bottone presente in alto nella pagina chiamato New App ID. Ci troviamo ora all’interno di una pagina con tre campi. Nel primo inseriremo la descrizione del certificato. Impostiamo il campo Bundle Seed ID al valore Generate New. L’ultimo campo Bundle Identifier deve contenere il carattere il carattere *.

Al termine della creazione troveremo nell’elenco il nostro App ID identificato da una sequenza di dicei caratteri seguiti da un punto e un asterisco (xxxxxxxxxx.*). La stringa causale viene generata automaticamente.

Entriamo nella sezione Provisioning, selezioniamo il tab in alto chiamato Distribution e clicchiamo su New Profile. Selezioniamo App Store quale distribution method, associamo un nome a questo profilo e selezioniamo come App ID quello creato, adoperando l’asterisco. Confermiamo e ricarichiamo la pagina finchè non risulterà nello stato di Active. Scarichiamo il profilo appena creato e installiamolo nel PC.

Sia il certificato, sia il profilo di distribuzione hanno un termine di scadenza, dopo il quale occorre rinnovarlo (il rinnovo avviene premendo il tasto renew). Dopo il rinnovo è sufficiente installare nuovamente i certificati nel proprio computer.

 

I Certificati necessari per il Testing

Per installare la versione di sviluppo del proprio software su qualunque iPhone, iPad, iPod Touch è necessario:

creare un certificato per lo sviluppo (tab Development invece di Distribution), seguendo gli stessi passi già descritti;

registrare uno o più dispositivi inserendo il codice UDID;

creare un provisioning profile per lo sviluppo (tab Development invece di Distribution) seguendo gli stessi passi già descritti e avendo cura di selezionare il certificato, l’APP ID e i dispositivi che verranno adoperati.

Quando si creano i certificati di Provisioning conviene inserire nel nome un codice per indicare se è di sviluppo o di distribuzione. Nel secondo caso conviene inserire anche una stringa se è per Apple Store o per la AdHocDistribution. In tal modo non si avranno dubbi su quale selezionare all’interno di XCode.

 

Registrazione del Dispositivo

Dopo aver creato e installato un nuovo certificato per lo sviluppo occorre inserire almeno un identificativo univoco chiamato UDID (Unique Device ID), associato al dispositivo che si utilizzerà nella sezione chiamata Devices. Per ottenere questa stringa alfanumerica è sufficiente adoperare il tool Organizer fornito con XCode (Window/Organizer), selezionare il dispositivo collegato nell’elenco presente nella colonna di sinistra e copiare la stringa associata alla voce Identifier. Tramite iTunes basta selezionare il dispositivo collegato e dopo aver cliccato su Identifier presente sotto la stringa Software Version premere la sequenza CTRL+C. Nel caso in cui comparisse, invece, di Identifier la voce Serial Number, basterà cliccare una o più volte su tale riga per visualizzare l’identifier. Una terza soluzione per ottenere l’UDID consiste nell’installare una tra le numerose applicazioni gratuite disponibili su App Store che consentono di inviare tale codice a un indirizzo di posta elettronica.

Inseriamo un nuovo dispositivo: clicchiamo su Add Devices, compiliamo il campo con un nome a nostra scelta che identifichi l’hardware adoperato (Nome Utente iPhone, Nome Utente iPad, ecc.) e il secondo con l’UDID appena copiato. Dopo aver inserito uno o più dispositivi è necessario creare un nuovo provisioning profile di tipo Development e selezionare i dispositivi associati. E’ possibile aggiungere o rimuovere quelli autorizzati, provvedendo però poi, a sostituire il vecchio provisioning profile installato nel proprio computer con la nuova versione aggiornata.

Solo all’interno del Provisioning Profile è possibile conoscere in dettaglio quali dispositivi sono abilitati, perchè all’interno del tool Organizer verrà visualizzato solo un valore numerico pari a quanti sono configurati nel profilo. Se vogliamo è possibile effettuare la AdHoc distribution, che consente di distribuire ad altri utenti il nostro applicativo in versione finale, senza passare per Apple Store.

In pratica si firma un’applicazione con le stesse procedure necessarie per inviarlo allo Store, utilizzando un profilo di provisioning diverso. Si invieranno il software e il profilo all’utente, che potrà così testarlo:

  • creare un Provisioning Profile di tipo Distribution, selezionando la voce AdHoc, utilizzando come certificato quello di Distribuzione (lo stesso per pubblicare su Apple Store) e abilitando i dispositivi su cui verrà installato;
  • firmare la nostra applicazione con questo certificato;
  • inviare Provisioning Profile e applicazione all’utente via email o link web;
  • installare entrambi i file all’interno di iTunes trascindandoli nell’area delle applicazioni scaricate;
  • sincronizzare il dispositivo.

Il limite di AdHoc Distribution consiste nel fatto che ha una durata limitata. Non è quindi un’alternativa ma un test o un modo per fare pubblicità. Al momento la durata è sei mesi, dopo i quali sarà necessario aggiornare il profilo (“renew”) e inviarlo nuovamente all’utente per farlo installare nel telefono.

Ora dobbiamo tornare all’XCode per confezionare il nostro applicativo e accedere alla sezione iTunes Connect per inviarlo a Apple.

L’Utility Organizer

Dopo la creazione e l’installazione dei certificati è possibile avviare di nuovo XCode. Organizer è un’utility accessibile dal menu Window di XCode e permette di fare tantissime operazioni. Appena collegato un dispositivo e avendo accettato la richiesta di abilitazione allo sviluppo potremo trascinare nel campo Privisioning i vari profili e subito dopo trascinare l’applicazione, ovviamente associata a questi profili in fase di compilazione all’interno di XCode.

 

La Configurazione per la Pubblicazione

Creiamo un nuovo file dal menu File/New File, selezioniamo voce Code Signing e, sulla destra, la voce Entitlements. Il nome del file sarà Entitlements.plist. Se non è stato fatto in precedenza è necessario creare un file di tipo Png, che verrà utilizzato come icona dell’applicazione. Impostiamo il nome del file icona all’interno del file nomeprogetto.plist creato da XCode e cambiamo il Bundel identifier inserendo prima di -${PRODUCT_NAME:rfc1034identi    er} una stringa identificativa (esempio it.leganza). A questo punto è necessario creare una configurazione all’interno delle proprietà del progetto, che chiameremo Production. Entriamo nelle proprietà del progetto, nel tab Configurations e selezioniamo quella chiamata Release e clicchiamo sul tasto Duplicate. Chiudiamo questa finestra e all’interno della colonna di sinistra di XCode scendiamo fino a trovare la cartella Targets identificata da un bersaglio rosso e bianco, al cui interno troviamo una voce con il nome del progetto che abbiamo creato. Facciamo doppio clic su tale riga, selezioniamo il tab Build, avendo cura di selezionare dal menu a tendina come configurazione Production, digitiamo nel campo Code Signing Entitlements, il nome del file Entitlements.plist e nel campo Any iPhone OS Device scegliamo il provisioning profile che abbiamo creato. Chiudiamo questa finestra, verificando che nel menu a tendina Overview sia selezionato Device e Production. Compiliamo il progetto (Tasto Build). Al termine dell’operazione troveremo il file nomeprogetto.app all’interno della cartella PRODUCTS della colonna di sinistra di XCode. Trasciniamo questo file sul desktop e premendo il tasto destro del mouse selezioniamo la voce Compress che creerà un file con estensione .zip. Per il testing e l’AdHoc Distribution basta semplicemente cambiare provisioning profile prima della compilazione.

iTunes Connect

iTune Connect

Prima di accedere ad iTunes Connect occorre creare delle immagini dell’applicativo:

  • una o più screenshot dell’applicativo nel rispetto delle dimensioni richieste. Per iPad la massima è 1024×768 oppure 768/1024, per iPhone 3GS 320×480 oppure 480×320, per iPhone 4 640×960 oppure 960×640. E’ possibile fornire anche dimensioni minori in cui si omette la barra presente in alto che mostra lo stato del dispositivo (Wi-Fi, batteria, ecc.).
  • un’immagine di 512×512 pixels (Jpg o Tiff) che verrà adoperata da Apple nella pagine dell’Apple Store associata al vostro software.

Tutte le informazioni sulle dimensioni delle immagini sono riportate nel documento iTunes Connect Developer, scaricabile dal sito Apple. Accediamo ad iTunes Connect e rechiamoci nella sezione Manage your Application, clicchiamo sul tasto Add New Application. Se non adoperiamo sistemi di criptazione rispondiamo NO, se utilizziamo la funzionalità di iAds (per Sdk dalla versione 4 e successive) rispondiamo SI oppure NO se vogliamo limitare la visualizzazione dei contenuti e clicchiamo sul tasto Enable iAds, altrimenti procediamo.

Impostiamo in lingua inglese il nome del software con una breve descrizione. Yes o No se il software può essere eseguito solo su alcuni dispositivi. Impostiamo la categoria copyright, numero di versione, sku number (nome del software), le parole chiave per consentire che venga trovato quando si effettua la ricerca su iTunes, e le informazioni di supporto.

Passiamo alla pagina RATINGS: qui si selezionano i campi che identificano il tipo del proprio applicativo. Nella pagina Upload si dovrà inviare il file zippato del software, l’icona 512×512 e i vari screenshots (selezionate Choose File per ogni singolo file che volete inserire).

Nella pagina PRICING: si può decidere se rilasciare gratuitamente oppure con un prezzo di vendita la propria applicazione, configurare possibili periodi di promozioni per i prezzi e se limitare la vendita solo in alcuni store. Quasi tutte queste impostazioni sono modificabili anche dopo la pubblicazione.

Ora che abbiamo inviato tutte le informazioni ad Apple bisogna attendere per sapere se è stata approvata oppure rifiutata con i suggerimenti del team di valutatori Apple per correggere eventuali problemi. Nel caso di pubblicazione di applicazione a pagamento (oppure che includa il servizio iAds) è necessario registrare preventivamente le proprie coordinate bancarie all’interno della sezione Contracts, Tax & Banking Information, inserendo il codice IBAN del proprio conto corrente. Per le statistiche di download queste si trovano nella sezione Sales and Trends e Financial Reports, oppure basta scaricare sul telefono iTC Mobile App, applicazione gratuita di Apple per iPhone e iPad.

Mi sono un pò dilungato ma spero di non aver omesso nulla.

Buona App!

Fabrizio Cannatelli

Autore e Founder di Informarea, sono un appassionato di informatica e tecnologia da sempre. La voglia di comunicare e di condividere sul Web le mie curiosità e le mie conoscenze, mi ha spinto a lanciarmi nel progetto di questo sito. Nato un po' per gioco e un po' per passione, oggi è diventato una grande realtà.

Fabrizio Cannatelli

Approfondimenti

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.