Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. iOS
Code

iOS da Zero con Swift: Come Testare un'Applicazione iOS su un Dispositivo

by
Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called iOS From Scratch With Swift.
iOS From Scratch With Swift: Setting Up the Development Environment
iOS From Scratch With Swift: Creating Your First iOS Application

Italian (Italiano) translation by Luca Menozzi (you can also view the original English article)

Fare il provisioning di un'applicazione per il test su un device fisico, o distribuirla sull'App Store, può diventare un incubo per i principianti. Ma tutti gli sviluppatori iOS devono affrontare questo ostacolo. In questo articolo, ti offro un'approfondita spiegazione di come rendere disponibile un'applicazione per il testing su un dispositivo fisico.

Questo tutorial copre due scenari:

  • distribuire un'app con un ID Apple free
  • distribuire un'app come membro dell'Apple Developer Program

Introduzione

Nel 2015, Apple ha rinnovato la sua offerta agli sviluppatori. Vale la pena di sottolineare, in particolare, due cambiamenti.

In passato, Apple aveva programmi separati per lo sviluppo su OS X, iOS e Safari. Non è più così. Con il lancio di watchOS e tvOS, Apple ha unito i suoi programmi esistenti in uno solo: l'Apple Developer Program.

Questo vuol dire che non devi iscriverti a più programmi se vuoi sviluppare sia su OS X che su iOS. Se ti iscrivi all'Apple Developer Program, puoi sviluppare per tutte le piattaforme.

Un altro importante cambiamento è quello di un'offerta per sviluppatori gratuita.  In passato era possibile creare un account gratuito. Con questo tipo di account, tuttavia, non potevi distribuire applicazioni iOS su un dispositivo fisico.

Questa restrizione è stata tolta. Chiunque abbia un ID Apple può iniziare a programmare per le piattaforme Apple e può installare le applicazioni su device fisici. E' davvero una buona notizia per chiunque sia interessato a sviluppare per una delle piattaforme Apple.

Se hai in mente di pubblicare un'applicazione su uno degli App Store Apple, hai bisogno di iscriverti all'Apple Developer Program. E' quello di cui abbiamo parlato nel precedente articolo della serie.

1. ID Apple

Installare una applicazione su un dispositivo fisico con un ID Apple è semplice. Ma tieni a mente che i tipi di applicazioni che puoi installare con un ID Apple free sono parzialmente limitate. Ti consiglio di dare un'occhiata alla panoramica di Apple se vuoi saperne di più su cosa è possibile fare e cosa no.

Vediamo quali step bisogna seguire per far girare una applicazione iOS su iPhone o iPad con un ID Apple. Se non ne hai ancora uno, ti suggerisco di crearlo sul sito Apple prima di proseguire con questo tutorial. Ti ci vorranno solo alcuni minuti.

Step 1: Registrarsi come Sviluppatore

Visita il sito Apple Developer e clicca su Member Center, in alto. Dopo aver eseguito l'accesso con un ID Apple, ti sarà chiesto di accettare l'Apple Developer Agreement. Dopo aver letto il contratto, se sei d'accordo, seleziona la casella di spunta e clicca Submit. Ora sei uno sviluppatore Apple registrato.

Step 2: Creare un progetto

Lancia Xcode e crea un progetto come quello cha abbiamo visto nello scorso tutorial. Ho scelto il template Single View Application e ho configurato il progetto come mostrato nell'immagine qui sotto. Di' a Xcode dove vuoi salvare i file di progetto e clicca su Create.

Configure the Project

Step 3: Aggiungere un Account

Dopo aver creato il progetto, Xcode ti mostra la tab General dell'unico target. Nella sezione Identity, Xcode ci avverte che non possiamo far girare l'applicazione su un device. L'avviso nella parte bassa della sezione Identity ci dice che Xcode non riesce a trovare un code signing identity  e Team è settato su None. Puoi risolvere facilmente questo problema inserendo il tuo ID Apple.

No Code Signing Identities Found

Seleziona Xcode dalla barra di menu e scegli Preferences... per aprire la finestra delle preferenze di Xcode.

Open Xcodes Preferences

Se apri la tab Accounts, puoi notare che non c'è ancora nessun account in elenco.

No Accounts Listed

Clicca sul pulsante +, in basso a destra, e scegli Add Apple ID... dall'elenco.

Add Apple ID

Inserisci il tuo ID Apple e la password nella finestra di dialogo e clicca Add. Se questa procedura non funziona, assicurati di esserti prima registrato come sviluppatore Apple, come ti ho mostrato prima. Se invece tutto è andato liscio, dovresti vedere l'account nell'elenco sulla sinistra.

Adding an Apple ID

Step 4. Aggiornare il Team

Chiudi la finestra delle preferenze e vai sulla tab General del target del progetto. Nella sezione Identity imposta il Team per l'account che hai aggiunto poco fa. Anche se hai specificato un team, Xcode continua a mostrarti un warning.

No Matching Provisioning Profiles Found

Aspetta un secondo... Perché non proviamo a cliccare il pulsante Fix Issue (risolvi problema) ? Ci sarà un motivo se è lì. Giusto? Cliccando su Fix Issue, Xcode si occuperà dei dettagli tecnici per assicurarsi che tu possa eseguire l'applicazione su un dispositivo fisico.

Step 5: Verificare lo Sviluppatore

Se provassi a far girare l'applicazione sul tuo device, incorreresti in un altro problema. Vedi anche tu questa finestra di dialogo?

Unable to Launch Application

Xcode ci mostra un messaggio di errore piuttosto enigmatico e mi ci sono voluti alcuni minuti per capire cosa stesse succedendo. Se dai un'occhiata al tuo device, dovresti vedere che l'applicazione è installata. Tocca l'icona per lanciarla e scoprirai qual è problema. Il sistema operativo ci dice che l'applicazione proviene da uno sviluppatore non verificato.

Untrusted Developer

Fortunatamente ci dà anche un suggerimento. Apri le Impostazioni del device e vai su Generale > Profili. Seleziona il profilo con il tuo ID Apple e tocca Autorizza "<ID Apple>" Scegli Autorizza dalla finestra di dialogo che ti viene mostrata per terminare il processo. Ora dovresti essere in grado di far girare l'app sul tuo device.

Choose the Profile With Your Apple ID

Ricordati che devi rifare la procedura se cancelli tutte le app di quello specifico sviluppatore.

2. Apple Developer Program

Se hai deciso di iscriverti all'Apple Developer Program, gli step che devi seguire per fare il provisioning di un'applicazione sono differenti. Il lato positivo è che le restrizioni imposte all'account free non ci sono per i membri del programma. La prima cosa di cui hai bisogno è di creare un development certificate.

Step 1: Creare una Richiesta per la Firma Certificata

Un certificato è un documento elettronico che collega la tua identità digitale con altre informazioni, come il tuo nome, la tua email e le informazioni dell'organizzazione. Un certificato di sviluppo (development certificate) è composto da una chiave privata e da una chiave pubblica condivisa. Se hai confidenza con i certificati SSL per la sicurezza dei siti web, allora probabilmente già conosci cos'è un certificato e come funziona.

Xcode usa la chiave privata del certificato per cifrare in maniera crittografica il codice binario della tua applicazione. Per ottenere un certificato di sviluppo, hai prima bisogno di una richiesta di firma certificata o CSR.

Puoi creare una CSR utilizzando l'utility Accesso Portachiavi di OS X, che puoi trovare nella cartella Applicazioni > Utility. Apri il menu Accesso Portachiavi, seleziona Assistente Certificato e scegli Richiedi un certificato da un'Autorità di Certificazione...

Compila il form inserendo il nome e l'indirizzo email con il quale ti sei iscritto all'Apple Developer Program. Lascia il campo "Indirizzo e-mail CA" vuoto e assicurati di selezionare Salvata su disco per poter salvare la richiesta di firma certificata sulla tua macchina. Lascia il checkbox Lascia che sia io a specificare le informazioni coppia di chiavi non selezionato.

Create a Certificate Signing Request

Clicca Continua, specifica un percorso per salvare la CSR e clicca Salva. Naviga il percorso che hai specificato per verificare che sia stata generata. In Accesso Portachiavi, sotto la categoria Chiavi, puoi notare che sono state aggiunte al tuo portachiavi sia la chiave privata che quella pubblica.

Create the PublicPrivate Key Pair

Step 2: Creare un Certificato di Sviluppo

Apri il browser e visita il sito web Apple developer. Clicca in alto su Member Center, accedi al tuo account e scegli Certificates, Identifiers & Profiles (Certificati, Identificativi e Profili).

Certificates Identifiers Profiles

Nella pagina successiva, clicca su Certificates nella sezione iOS Apps.

Certificates iOS Apps

Clicca sul pulsante + in alto a destra per aggiungere un nuovo certificato. Dalla lista delle opzioni, scegli iOS App Development. Questo è il tipo di certificato che ci interessa. Clicca su Continue, in basso.

Choose the Certificate Type

La pagina successiva evidenzia gli step per creare una CSR. Dato che abbiamo già una CSR, puoi cliccare su Continue, in basso.

Creating a Certificate Signing Request

Carica la CSR e clicca Generate, in basso.

Uploading the Certificate Signing Request

Tutto fatto. Clicca Download per scaricare il certificato di sviluppo. Dopo averlo scaricato, fai doppio click su di esso per installarlo nell'Accesso Portachiavi. Assicurati di fare una copia del certificato perché non lo devi perdere.

Downloading the Certificate

Se Accesso Portachiavi ti suggerisce di aggiungere il certificato al portachiavi di login, puoi tranquillamente cliccare Aggiungi.

Adding the Certificate to the Login Keychain

Sempre in Accesso Portachiavi, seleziona I miei certificati sulla sinistra e cerca il certificato che hai aggiunto per essere certo di averlo installato correttamente.

Installing the Certificate

Step 3: Aggiungere un Dispositivo

Non puoi far girare un'applicazione iOS su un device qualsiasi. Devi specificare quali dispositivi possono eseguire la tua app in fase di sviluppo registrandone, anche più di uno, sul portale Apple developer.

Vai alla sezione Certificates, Identifiers & Profiles del portale, seleziona la tab Devices, nella sezione iOS Apps, e clicca il pulsante + in alto a destra. Per registrare un device, inserisci un nome e il suo UDID. L'UDID è una sigla che identifica in modo univoco un device iOS. Ricorda che l'UDID non è lo stesso del numero di serie del dispositivo.

Registering a Device

Puoi scoprirlo connettendo il device al tuo computer, lanciando Xcode e scegliendo Devices dal menu Window. La stringa composta da quaranta caratteri alfanumerici vicino all'Identifier, è l'UDID del dispositivo.

Locating the Device UDID

Step 4: Creare un ID App

Un ID App è un'identificativo che distingue univocamente un'applicazione su iOS. E' grosso modo come l'UDID che identifica univocamente il dispositivo. L'ID App è usato dal sistema operativo per ragioni di sicurezza ed è una componente essenziale del servizio di Push Notification e di iCloud, tra le altre cose.

L'ID App di un'applicazione è composto dal tuo bundle identifier dell'applicazione preceduto da un bundle seed ID di 10 caratteri unici generato da Apple. Cos'è il bundle identifier? Ripensa al primo progetto che hai creato nel tutorial precedente. Anche se non ho parlato in dettaglio del bundle identifier, ne hai specificato uno implicitamente per il tuo progetto dando alla tua applicazione un nome e specificando una sigla per l'organizzazione.

Di default, il bundle identifier è il nome della tua applicazione preceduto dalla sigla dell'organizzazione del progetto. Puoi cambiare il bundle identifier in quello che desideri. La raccomandazione è di adottare la notazione del nome di dominio invertito, come, ad esempio, com.tutsplus.my-first-application. L'ID App completo potrà quindi diventare xxxxxxxxxx.com.tutsplus.my-first-application.

Per creare un nuovo ID App sul portale di sviluppo, vai nella sezione Certificates, Identifiers & Profiles, clicca su iOS Apps e scegli App IDs dal menu sulla sinistra. Per creare un nuovo ID App, clicca sul pulsante + in alto a destra.

Inizia dando al tuo ID App un nome che lo descriva per poterlo ritrovare successivamente. Lascia invariato il prefisso. Nella sezione App ID Suffix, inserisci il bundle identifier della tua applicazione. Assicurati di inserirlo nella sezione con etichetta Explicit App ID.

Create an App ID

Puoi anche optare per un ID App jolly (Wildcard App ID) rimpiazzando il nome applicazione, nel bundle identifier, con un asterisco, per esempio com.tutsplus.*. Questa soluzione è utile nel caso tu voglia creare una suite di applicazioni che richiedono la condivisione dell'accesso al portachiavi o non richiedono affatto l'accesso. Il carattere asterisco, o jolly, deve essere l'ultimo componente del bundle identifier.

Step 5: Creare un Profilo di Provisioning

Con il development certificate e l'ID App a posto, è giunto il momento di creare un profilo di provisioning per l'applicazione. Prima di iniziare, potrebbe essere utile spiegare cos'è un profilo di provisioning, perché questa cosa confonde molti nuovi sviluppatori iOS.

La documentazione Apple definisce un profilo di provisioning come "una collezione di risorse che legano in maniera univoca sviluppatori e dispositivi ad un team di sviluppo autorizzato e abilita un dispositivo per essere usato per il testing". In altre parole, un profilo di provisioning contiene le informazioni di cui il sistema operativo ha bisogno per verificare se un'applicazione è abilitata a funzionare su uno specifico dispositivo. Questo implica che il profilo di provisioning ha bisogno di essere installato in ogni dispositivo su cui l'applicazione deve girare.

Creiamo un profilo di provisioning per la tua applicazione. Nella sezione Certificates, Identifiers & Profiles del portale, seleziona la tab Provisioning Profiles nella sezione iOS Apps. Clicca sul pulsante + in alto a destra per creare un nuovo profilo. Seleziona iOS App Development nella sezione Development e clicca su Continue.

Create a Provisioning Profile

Nel passo successivo, seleziona l'ID App che hai creato pochi minuti fa e clicca su Continue.

Select the App ID

Seleziona il development certificate corretto, dalla lista dei certificati, per associarlo al nuovo profilo. Clicca su Continue.

Select the Certificate

Ora hai bisogno di indicare il dispositivo che desideri collegare col profilo di provisioning. Ricorda che solo questi dispositivi potranno far girare l'applicazione durante lo sviluppo.

Select the Devices

Dai un nome al profilo per poterlo trovare facilmente in un momento successivo. Clicca Generate e scarica il profilo sulla tua macchina di sviluppo. Fai doppio click sul profilo scaricato per aggiungerlo a Xcode.

Generate the Provisioning Profile

Se desideri aggiungere più dispositivi ad un profilo esistente puoi farlo modificando il profilo. Tutto quello di cui hai bisogno è scaricare il nuovo profilo di provisioning e installarlo su ciascun device con cui intendi eseguire i test. In altre parole, non hai bisogno di creare un nuovo profilo se devi solo aggiungere nuovi dispositivi remoti.

Step 6: Configurare il Progetto

Prima di compilare ed eseguire la tua applicazione sul device, devi aggiornare le preferenze di compilazione del target nel tuo progetto Xcode.

Apri il progetto Xcode che hai creato nel precedente tutorial e selezionalo dal Project Navigator sulla sinistra. Seleziona My First Application nella sezione Targets e apri Build Settings, in alto.

Open the Target Build Settings

Non lasciarti intimidire dalle numerose preferenze di compilazione. Scorri l'elenco e cerca la sezione Code Singing. In questa sezione, cerca la sottosezione Code Singing Identity e setta l'impostazione Debug a iOS Developer. Normalmente si trova sotto l'intestazione Automatic.

Set the Code Signing Identity

Step 7: Build & Run

Se hai seguito i passi precedenti, dovresti essere in grado di compilare ed eseguire la tua applicazione sul device. Prima di eseguirla, assicurati di aver settato correttamente lo schema attivo e la destinazione come mostrato di seguito.

Set Scheme and Destination

3. Aggiungere un Account Sviluppatore

Per quanto riguarda il provisioning dell'applicazione, Xcode può fare parte del lavoro complicato al posto tuo. Per funzionare, è necessario aggiungere l'account sviluppatore a Xcode. Puoi aggiungerlo selezionando Preferences... dal menu Xcode e aprendo la tab Accounts.

Open Xcode Preferences
No Accounts Configured

Clicca il pulsante + in basso a sinistra e scegli Add Apple ID... dalla lista di opzioni. Inserisci le credenziali e clicca su Add.

Add Apple ID

Aggiungere l'account sviluppatore a Xcode, gli permette di comunicare col portale al posto tuo. Questo rende alcune procedure un po' più semplici.

Conclusioni

Creare e gestire certificati, profili di provisioning, ID App e dispositivi di test, può diventare un compito arduo — e spesso lo è per la maggior parte degli sviluppatori. Spero che questo articolo ti abbia fornito solide basi.

Non esitare a rileggerlo un po' di volte per capire a fondo come i vari pezzi si incastrano l'un con l'altro. Renderà i problemi di debug relativi al provisioning molto più semplici e posso garantirti che andrai incontro a questi problemi, prima o poi, nella tua carriera di sviluppatore iOS.

Per qualsiasi domanda o commento, puoi lasciarli qui di seguito o sul mio account Twitter.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.